»ç¶÷µéÀº º»½©ÀÇ ¾îµÎ¿î ¸éÀ» ¸ðµÎ »ç¿ëÇÑ´Ù. | |
Chet Ramey |
exit ¸í·É¾î´Â C ÇÁ·Î±×·¥¿¡¼Ã³·³ ½ºÅ©¸³Æ®¸¦ ³¡³¾ ¶§ ¾¹´Ï´Ù. ¶ÇÇÑ, ½ºÅ©¸³Æ®ÀÇ ºÎ¸ð ÇÁ·Î¼¼½º¿¡°Ô ¾î¶² °ªÀ» µ¹·Á ÁÙ ¼öµµ ÀÖ½À´Ï´Ù.
¸ðµç ¸í·É¾î´Â Á¾·á »óÅÂ( exit status (°¡²ûÀº ¸®ÅÏ »óÅÂ( return status )¶ó°íµµ ÇÏ´Â)¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¸í·É¾î°¡ ¼º°ø½Ã¿¡´Â 0À» ¸®ÅÏÇÏ°í ½ÇÆнÿ¡´Â ¿¡·¯ ÄÚµå·Î Çؼ®µÉ ¼ö ÀÖ´Â non-zero¸¦ ¸®ÅÏÇÕ´Ï´Ù. ¿¹¿Ü°¡ ÀÖ±â´Â ÇÏÁö¸¸, À¯´Ð½º °ü·Ê¸¦ Àß µû¸£´Â ¸í·É¾î, ÇÁ·Î±×·¥, À¯Æ¿¸®Æ¼´Â ¼º°øÇßÀ» ¶§ 0À» ¸®ÅÏÇÕ´Ï´Ù.
ºñ½ÁÇÏ°Ô, ½ºÅ©¸³Æ®ÀÇ ÇÔ¼ö³ª ½ºÅ©¸³Æ® Àڽŵµ Á¾·á »óŸ¦ ¸®ÅÏÇÕ´Ï´Ù. ½ºÅ©¸³Æ® ÇÔ¼ö³ª ½ºÅ©¸³Æ®¿¡¼ °¡Àå ¸¶Áö¸·¿¡ ½ÇÇàµÈ ¸í·É¾î°¡ Á¾·á »óŸ¦ °áÁ¤ÇÕ´Ï´Ù. ½ºÅ©¸³Æ®¿¡¼ exit nnn À̶ó°í Çϸé nnnÀ̶ó´Â Á¾·á »óŸ¦ ½©¿¡°Ô Àü´ÞÇØ ÁÝ´Ï´Ù(nnnÀº 0¿¡¼ 255 »çÀÌÀÇ ½ÊÁø¼ö¿©¾ß ÇÕ´Ï´Ù).
Âü°í: ¸Å°³º¯¼ö ¾øÀÌ ±×³É exit·Î ³¡³µÀ» °æ¿ì¿¡´Â, ¸¶Áö¸·¿¡ ½ÇÇàµÈ ¸í·É¾î(exit ÀÚ½ÅÀº »©°í)ÀÇ Á¾·á »óÅ°¡ ½ºÅ©¸³Æ®ÀÇ Á¾·á »óÅ°¡ µË´Ï´Ù.
$? ´Â Á¦ÀÏ ¸¶Áö¸· ¸í·É¾îÀÇ Á¾·á »óŸ¦ º¸¿©ÁÝ´Ï´Ù. ÇÔ¼ö°¡ ¸®ÅÏÇÑ ´ÙÀ½¿¡ $?¶ó°í Çϸé ÇÔ¼öÀÇ ¸¶Áö¸· ¸í·É¾îÀÇ Á¾·á »óŸ¦ ¾Ë·ÁÁÝ´Ï´Ù. bash¿¡¼´Â ÀÌ·¸°Ô Çؼ ÇÔ¼öÀÇ "¹Ýȯ°ª"À» µ¹·Á ÁÝ´Ï´Ù. ½ºÅ©¸³Æ®°¡ Á¾·áÇÑ ´ÙÀ½¿¡´Â ¸í·É¾îÁÙ¿¡¼ $?·Î ½ºÅ©¸³Æ® ¸¶Áö¸· ¸í·É¾îÀÇ Á¾·á »óŸ¦ ¾Ë ¼ö°¡ Àִµ¥ °ü½ÀÀûÀ¸·Î 0Àº ¼º°øÀ» ³ªÅ¸³»°í 1¿¡¼ 255±îÁöÀÇ ¼ýÀÚ´Â ¿¡·¯¸¦ ³ªÅ¸³À´Ï´Ù.
¿¹ 3-1. Á¾·á/Á¾·á »óÅÂ
#!/bin/bash echo hello echo $? # ¸í·É¾î°¡ ¼º°øÇ߱⠶§¹®¿¡ Á¾·á »óÅ 0ÀÌ ¸®ÅϵÊ. lskdf # ¾Ë¼ö¾ø´Â ¸í·É¾î. echo $? # 0ÀÌ ¾Æ´Ñ Á¾·á »óÅ°¡ ¸®ÅϵÊ. echo exit 113 # ½©¿¡°Ô 113À» ¸®ÅÏÇÔ. # È®ÀÎÇØ º¸·Á¸é ÀÌ ½ºÅ©¸³Æ®°¡ Á¾·áµÈ ´ÙÀ½¿¡ "echo $?"¶ó°í ÃÄ º¸¼¼¿ä. # °ü½ÀÀûÀ¸·Î 'exit 0'Àº ¼º°øÀ» ÀǹÌÇÕ´Ï´Ù. # 0ÀÌ ¾Æ´Ñ °ªÀº ¿¡·¯³ª ¿¹¿Ü»óȲÀ» ³ªÅ¸³À´Ï´Ù. |
$? ´Â ½ºÅ©¸³Æ®¿¡¼ ½ÇÇà½ÃÅ° ¸í·É¾îÀÇ °á°ú¸¦ È®ÀÎÇϴµ¥ Ưº°È÷ À¯¿ëÇÏ°Ô ¾²ÀÔ´Ï´Ù(¿¹ 12-8 ¿Í ¿¹ 12-13 Âü°í).
Âü°í: ³í¸®Àû "ºÎÁ¤" ÇÑÁ¤¾î(qualifier)ÀÎ ! ´Â Å×½ºÆ®³ª ¸í·É¾îÀÇ °á°ú¸¦ ¹Ý´ë·Î ¹Ù²ã¼ Á¾·á »óÅ¿¡ ¿µÇâÀ» ¹ÌĨ´Ï´Ù.
°æ°í |
¸î¸î Á¾·á »óÅ ÄÚµåµéÀº ¿¹¾àµÅ Àֱ⠶§¹®¿¡ »ç¿ëÀÚ°¡ ½ºÅ©¸³Æ®¿¡¼ ¸¶À½´ë·Î ¾²¸é ¾È µË´Ï´Ù. |