¾î´À Á¤µµ Á¦ÇÑÀº ÀÖÁö¸¸ Bashµµ "½ÇÁ¦" ÇÁ·Î±×·¡¹Ö ¾ð¾îµéó·³ ÇÔ¼ö¸¦ Áö¿øÇÕ´Ï´Ù. ÇÔ¼ö¶õ ¼ºê·çƾÀ¸·Î, ¾î¶² µ¿ÀÛµéÀÌ ±¸ÇöµÈ ÄÚµå ºí·°ÀÌ°í, ƯÁ¤ÇÑ ÀÏÀ» ¼öÇàÇÏ´Â "ºí·¢ ¹Ú½º"ÀÔ´Ï´Ù. ¹Ýº¹ÀûÀÎ Äڵ峪 ¾à°£¸¸ ´Ù¸¥ ÀÏÀ» ¹Ýº¹ÇÏ´Â ÀÛ¾÷µéÀÌ ÀÖ´Ù¸é ÇÔ¼ö¸¦ ¾²µµ·Ï °í·ÁÇØ º¸´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
function function_name {
command...
}
function_name () {
command...
}
µÎ ¹ø° ÇüÅ´ C ÇÁ·Î±×·¡¸Óµé¿¡°Ô ¾ÆÁÖ ¹Ý°¡¿ï °ÍÀÔ´Ï´Ù(¶ÇÇÑ ÀÌ ÇüÅ°¡ ´õ À̽ļº ÀÖ½À´Ï´Ù).
C ÇÔ¼ö ¹®¹ý°ú ´õ¿í ºñ½ÁÇÏ°Ô ¿ÞÂÊ Áß°ýÈ£¸¦ ´ÙÀ½ ÁÙ¿¡ ³õ¾Æµµ µË´Ï´Ù.
function_name ()
{
command...
}
ÇÔ¼ö´Â °£´ÜÇÏ°Ô ÇÔ¼ö À̸§À» ºÒ·¯¼ ½ÇÇà½Ãų ¼ö ÀÖ½À´Ï´Ù.
¿¹ 23-1. °£´ÜÇÑ ÇÔ¼ö
#!/bin/bash funky () { echo "funky ÇÔ¼öÀÔ´Ï´Ù." echo "funky ÇÔ¼ö¸¦ ºüÁ® ³ª°©´Ï´Ù." } # ÇÔ¼ö°¡ ºÒ¸®±â Àü¿¡ ¼±¾ðµÅ ÀÖ¾î¾ß ÇÕ´Ï´Ù. # ÀÌÁ¦ ÇÔ¼ö¸¦ ºÎ¸¨½Ã´Ù. funky exit 0 |
ÇÔ¼ö´Â ÇÔ¼ö°¡ ºÒ¸®±â Àü¿¡ Á¤ÀǵǾî¾ß µË´Ï´Ù. ¿¹¸¦ µé¾î C¿¡¼ ó·³ ÇÔ¼ö¸¦ ¹Ì¸® "¼±¾ð"ÇÏ´Â ¹æ¹ýÀº ¾ø½À´Ï´Ù.
# f1 # "f1"ÀÌ ¾ÆÁ÷ Á¤ÀǵÇÁö ¾Ê¾Ò±â ¶§¹®¿¡ ¿¡·¯ ¸Þ¼¼Áö°¡ ³ª¿É´Ï´Ù. # ±×·¸Áö¸¸... f1 () { echo "\"f1\" ÇÔ¼ö¿¡¼ \"f2\" ÇÔ¼ö ºÎ¸£±â." f2 } f2 () { echo "\"f2\" ÇÔ¼ö." } f1 # "f2" ÇÔ¼ö´Â Á¤ÀǵDZâ Àü¿¡ ÂüÁ¶µÇÁö¸¸ ½ÇÁ¦·Î´Â ¿©±â Àü¿¡´Â # ºÒ¸®Áö ¾Ê±â ¶§¹®¿¡ °¡´ÉÇÕ´Ï´Ù. # Thanks, S.C. |
ÇÔ¼ö ¾È¿¡¼ ´Ù¸¥ ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â°Ô °¡´ÉÇϱä ÇÏÁö¸¸ ±×·¸°Ô ¾µ¸ð°¡ ÀÖÁø ¾Ê½À´Ï´Ù.
f1 () { f2 () # ÁßøµÊ. { echo "ÇÔ¼ö \"f1\"¼ÓÀÇ ÇÔ¼ö \"f2\"." } } # f2 # ¿¡·¯°¡ ³³´Ï´Ù. f1 # "f1"ÀÌ ÀÚµ¿À¸·Î "f2"¸¦ ºÎ¸£Áö ¾Ê±â ¶§¹®¿¡ ¾Æ¹« Àϵµ ÀϾÁö ¾Ê½À´Ï´Ù. f2 # "f1"À» ºÎ¸§À¸·Î½á "f2"ÀÇ Á¤ÀÇ°¡ ÀÌ·ç¾îÁ³±â ¶§¹®¿¡ ÀÌÁ¦´Â "f2"¸¦ ºÒ·¯µµ ±¦Âú½À´Ï´Ù. # Thanks, S.C. |
ÇÔ¼ö ¼±¾ðÀº ¸í·É¾î°¡ ¾Æ´Ï¸é ¾È µÅ º¸ÀÌ´Â °÷¿¡¼ Á¶Â÷ °¡´ÉÇÕ´Ï´Ù.
ls -l | foo() { echo "foo"; } # °¡´ÉÇÏÁö¸¸ ¾µ¸ð ¾ø½À´Ï´Ù. if [ "$USER" = bozo ] then bozo_greet () # if/then ¹® Áß°£¿¡ µé¾î°£ ÇÔ¼ö Á¤ÀÇ. { echo "Hello, Bozo." } fi bozo_greet # bozo »ç¿ëÀÚÀÏ ¶§¸¸ µ¿ÀÛÇÏ°í ´Ù¸¥ »ç¿ëÀÚ´Â ¿¡·¯°¡ ³³´Ï´Ù. # ¾î¶² »óȲ¿¡¼´Â ´ÙÀ½Ã³·³ ÇÏ´Â °ÍÀÌ À¯¿ëÇÒ ¶§°¡ ÀÖ½À´Ï´Ù. NO_EXIT=1 # ¹Ø¿¡ ³ª¿Ã ÇÔ¼ö Á¤ÀǸ¦ °¡´ÉÇÏ°Ô ÇØ ÁÝ´Ï´Ù. [[ $NO_EXIT -eq 1 ]] && exit() { true; } # "and-list" ¾È¿¡¼ ÇÔ¼ö¸¦ Á¤ÀÇ. # $NO_EXIT °¡ 1À̶ó¸é "exit ()"¸¦ ¼±¾ð. # "true"·Î º°Äª(alias)À» °É¾î¼ ³»Àå ¸í·É¾îÀÎ "exit"¸¦ ²ü´Ï´Ù. exit # ³»Àå ¸í·É¾îÀÎ "exit"¸¦ ºÎ¸£Áö ¾Ê°í "exit ()" ÇÔ¼ö¸¦ ºÎ¸¨´Ï´Ù. # Thanks, S.C. |