Go to the first, previous, next, last section, table of contents.


À¯´Ð½º ¸í·É¾îÀÇ ½ÇÇà

m4 ³»ºÎ¿¡¼­ À¯´Ð½º ¸í·É¾î¸¦ ½ÇÇàÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ¾à°£ÀÇ ³»Àå ¸ÅÅ©·Î°¡ ÁغñµÇ¾î ÀÖ´Ù.

°£´ÜÇÑ ¸í·ÉÀ» ½ÇÇàÇϱâ

¾î¶°ÇÑ ¼Ð ¸í·É¾îµçÁö syscmd¸¦ »ç¿ëÇÏ¿© ½ÇÇàÇÒ ¼ö ÀÖ´Ù.

syscmd(shell-command)

ÀÌ°ÍÀº shell-command¸¦ ¼Ð ¸í·É¾î·Î¼­ ½ÇÇàÇÑ´Ù.

syscmd´Â È®ÀåµÇÁö ¾ÊÀ¸¸ç, shell-command·ÎºÎÅÍÀÇ Ãâ·ÂÀÌ ¾Æ´Ï´Ù! shell-command·ÎºÎÅÍÀÇ Ãâ·ÂÀ̳ª ¿¡·¯ ¸Þ½ÃÁö´Â m4¿¡ ÀÇÇØ ÀÐÈ÷Áö ¾Ê´Â´Ù. ¸í·É¾îÀÇ Ãâ·ÂÀ» ó¸®ÇÏ°í ½Í´Ù¸é See section ¸í·ÉÀÇ Ãâ·ÂÀ¸·Î ºÎÅÍ Àбâ.

¸í·É¾î¸¦ ½ÇÇàÇϱâ Àü¿¡ m4´Â ÀÚ½ÅÀÇ Ãâ·Â¹öÆÛ¸¦ ºñ¿ö ¹ö¸°´Ù. shell-commandÀÇ µðÆúÆ® Ç¥ÁØÀÔ·Â, Ç¥ÁØÃâ·Â, ¿¡·¯Ãâ·ÂÀº m4ÀÇ ±×°Í°ú µ¿ÀÏÇÏ´Ù. (¿ªÀÚÁÖ: ÀÌ°ÍÀÌ ¶æÇÏ´Â °ÍÀº Á¤È®È÷ ¹«¾ùÀÎÁö Àß ¸ð¸£°ÚÀ½)

³»Àå ¸ÅÅ©·Î syscmd´Â ÀÎÀÚ°¡ ÀÖ¾î¾ß¸¸ ÀνĵȴÙ.

¸í·ÉÀÇ Ãâ·ÂÀ¸·Î ºÎÅÍ Àбâ

À¯´Ð½º ¸í·É¾î¸¦ ½ÇÇàÇÏ°í ³­ °á°ú·Î¼­ÀÇ Ãâ·ÂÀ» m4°¡ ÀоîµéÀ̱⸦ ¹Ù¶õ´Ù¸é esyscmd¸¦ »ç¿ëÇÏ¸é µÈ´Ù.

esyscmd(shell-command)

ÀÌ°ÍÀº ¼Ð ¸í·É¾î shell-commandÀÇ Ç¥ÁØ Ãâ·ÂÀ¸·Î È®ÀåÇÑ´Ù.

¸í·É¾î¸¦ ½ÇÇàÇϱâ Àü¿¡ m4´Â ÀÚ½ÅÀÇ Ãâ·Â ¹öÆÛ¸¦ ºñ¿ö ¹ö¸°´Ù. shell-commandÀÇ µðÆúÆ® Ç¥ÁØ ÀԷ°ú ¿¡·¯ Ãâ·ÂÀº m4ÀÇ ±×°Í°ú µ¿ÀÏÇÏ´Ù. shell-commandÀÇ ¿¡·¯ Ãâ·ÂÀº È®ÀåÀÇ ÇÑ ºÎºÐÀÌ ¾Æ´Ï±â¿¡, m4ÀÇ ¿¡·¯ Ãâ·Â°ú ÇÔ²² ³ªÅ¸³­´Ù.

¿©·¯ºÐÀÌ ÇöÀç ÀÖ´Â µð·ºÅ丮°¡ GNU m4 ¹èÆ÷º»ÀÇ `checks' µð·ºÅ丮¶ó°í °¡Á¤ÇÏÀÚ. ±×·¯¸é..

define(`vice', `esyscmd(grep Vice ../COPYING)')
=>
vice
=>  Ty Coon, President of Vice
=>

esyscmdÀÇ È®Àå¿¡¼­ µÚµû¶ó ³ª¿À´Â ÁÙ¹Ù²Þ ¹®ÀÚ°¡ ¾î¶»°Ô Çؼ­ ³ªÅ¸³ª°Ô µÇ´ÂÁö¿¡ ÁÖÀÇÇ϶ó.

³»Àå ¸ÅÅ©·Î esyscmd´Â ÀÎÀÚ°¡ ÀÖÀ» °æ¿ì¿¡¸¸ ÀνĵȴÙ.

Á¾·á ÄÚµå

¼Ð ¸í·É¾î°¡ Á¦´ë·Î ½ÇÇàµÇ¾ú´ÂÁö¸¦ ¾Ë·Á¸é sysvalÀ» »ç¿ëÇÏ¸é µÈ´Ù.

sysval

ÀÌ°ÍÀº syscmd¿Í esyscmd·Î ½ÇÇàµÈ ¸¶Áö¸· ¼Ð ¸í·É¾îÀÇ Á¾·áÄÚµå·Î È®ÀåµÈ´Ù.

syscmd(`false')
=>
ifelse(sysval, 0, zero, non-zero)
=>non-zero
syscmd(`true')
=>
sysval
=>0

Àӽà ÆÄÀÏÀÇ À̸§ ¸¸µé±â

syscmd¿Í esyscmd¿¡¼­ ÁöÁ¤µÈ ¸í·ÉÀ» ½ÇÇàÇÒ ¶§¿¡´Â, Ãâ·ÂÀ» ó¸®Çϱâ À§Çؼ­³ª ¾î¶² ´Ù¸¥ ¸ñÀû ¶§¹®¿¡, Àӽà ÆÄÀÏÀÌ ÇÊ¿äÇÒ Áöµµ ¸ð¸¥´Ù. ³»Àå ¸ÅÅ©·Î maketemp´Â ÀÓ½ÃÀûÀ¸·Î »ç¿ëÇÒ ÆÄÀÏÀÇ À̸§À» ¸¸µç´Ù.

maketemp(template)

ÀÌ°ÍÀº ¹®ÀÚ¿­ template¸¦ ±Ù°£À¸·Î Çؼ­ ¸¸µé¾îÁö´Â Á¸ÀçÇÏÁö ¾Ê´Â ÆÄÀÏÀÇ À̸§À¸·Î È®ÀåµÈ´Ù. template ¹®ÀÚ¿­ÀÇ ³¡ºÎºÐÀº `XXXXXX'·Î µÇ¾î¾ß ÇÑ´Ù. ±×·¸°Ô Çϸé ÀÌ ¿©¼¸ °³ÀÇ X´Â º¸Åë m4 ÇÁ·Î¼¼½ºÀÇ ÇÁ·Î¼¼½º ¾ÆÀ̵𸦠Æ÷ÇÔÇÏ´Â ¾î¶² °ÍÀ¸·Î ġȯµÇ¾î ÆÄÀÏ À̸§ÀÇ À¯ÀϹ«À̼ºÀ» º¸ÀåÇÑ´Ù.

maketemp(`/tmp/fooXXXXXX')
=>/tmp/fooa07346
maketemp(`/tmp/fooXXXXXX')
=>/tmp/fooa07346

ÀÌ ¿¹¿¡¼­¿Í °°ÀÌ maketemp¸¦ ¿©·¯ ¹ø È£ÃâÇصµ °°Àº ¹®ÀÚ¿­·Î È®ÀåµÉ ¼öµµ ÀÖ´Ù. ¿Ö³ÄÇϸé, ÆÄÀÏ À̸§ ¼±Åà ±âÁØÀº ±× ÆÄÀÏÀÌ ÇöÀç Á¸ÀçÇÏ´À³Ä ¾Æ´Ï³ÄÀ̱⠶§¹®ÀÌ´Ù. ÆÄÀÏÀÌ ´ÙÀ½ ¹ø È£Ãâ ¶§±îÁö ¸¸µé¾îÁöÁö ¾Ê¾Ò´Ù¸é, µÎ ¹øÀÇ ¸ÅÅ©·Î È£ÃâÀº °°Àº À̸§À¸·Î È®ÀåµÉ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

³»Àå ¸ÅÅ©·Î maketemp´Â ÀÎÀÚ°¡ ÀÖÀ» ¶§¿¡¸¸ ÀνĵȴÙ.


Go to the first, previous, next, last section, table of contents.