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.