º¯¼öÀÇ À̸§Àº ÀÚ½ÅÀÌ °®°í ÀÖ´Â µ¥ÀÌŸÀÇ °ªÀ» ´ã´Â ±×¸©ÀÔ´Ï´Ù. ±× º¯¼öÀÇ °ªÀ» ÂüÁ¶ÇÏ´Â °ÍÀ» º¯¼ö ġȯ(variable substitution)À̶ó°í ÇÕ´Ï´Ù.
º¯¼ö À̸§°ú ±× °ªÀ» Á¶½É½º·´°Ô »ìÆìº¸ÁÒ. ¸¸¾à¿¡ variable1ÀÌ º¯¼ö À̸§À̶ó¸é $variable1Àº ±× º¯¼ö°¡ °®°í ÀÖ´Â µ¥ÀÌŸ ¾ÆÀÌÅÛÀÎ °ªÀ» ³ªÅ¸³À´Ï´Ù. º¯¼ö¸¦ ¼±¾ðÇϰųª ÇÒ´çÇÒ ¶§, unset µÉ ¶§, exportµÉ ¶§¿¡¸¸ $¾øÀÌ ¾²ÀÔ´Ï´Ù. º¯¼ö ÇÒ´çÀº =À» ¾²°Å³ª(var1=27 ó·³), read ¹®¿¡¼ ¾²À̰ųª, ·çÇÁ¹®ÀÇ Ã³À½¿¡¼ ¾²ÀÔ´Ï´Ù(for var2 in 1 2 3).
ÂüÁ¶µÇ´Â °ªÀ» Å«µû¿ÈÇ¥(" ")·Î ¹¾îµµ º¯¼ö ġȯÀÌ ÀϾ´Â °ÍÀ» ¸·Áö ¸øÇÕ´Ï´Ù. À̸¦ ºÎºÐÀû Äõ¿ìÆÃ(partial quoting)À̳ª "¾àÇÑ Äõ¿ìÆÃ(weak quoting)"À̶ó°í ÇÕ´Ï´Ù. ÀÛÀºµû¿ÈÇ¥¸¦ ¾²°Ô µÇ¸é º¯¼ö À̸§ÀÌ ±×³É ¹®ÀÚ ±×´ë·Î ÇØ¼®µÇ¾î ¾Æ¹«·± Àϵµ ÀϾÁö ¾Ê½À´Ï´Ù. À̸¦ ¿ÏÀüÇÑ Äõ¿ìÆÃ(full quoting)À̳ª "°ÇÑ Äõ¿ìÆÃ(strong quoting)"À̶ó°í ÇÕ´Ï´Ù. ´õ ÀÚ¼¼ÇÑ »çÇ×Àº 6ÀåÀ» Âü°íÇϼ¼¿ä.
$variableÀº ${variable}À» ª°Ô ¾´ Ç¥ÇöÀÓ¿¡ ÁÖÀÇÇϼ¼¿ä. $variable¶ó°í ½á¼ ¿¡·¯°¡ ³µÀ» °æ¿ì¿¡´Â ±ä ÇüÅ·Π½áÁÖ¸é ÇØ°áµÉ ¼öµµ ÀÖ½À´Ï´Ù(´ÙÀ½¿¡ ³ª¿À´Â 9.3Àý¸¦ Âü°íÇϼ¼¿ä).
¿¹ 5-1. º¯¼ö ÇÒ´ç°ú ġȯ
#!/bin/bash # º¯¼ö: ÇÒ´ç°ú ġȯ a=375 hello=$a #------------------------------------------------------------------------- # º¯¼ö¸¦ ÃʱâÈ ÇÒ ¶§, = ¾çÂÊ¿¡´Â ºó ÄÀÌ µé¾î°¡¸é ¾È µË´Ï´Ù. # "VARIABLE =value" ¶ó°í Çϸé, #+ ½ºÅ©¸³Æ®´Â "VARIABLE" ¸í·É¾î°¡ "=value"¶õ ÀÎÀÚ¸¦ °®´Â°Íó·³ ÀνÄÇÕ´Ï´Ù. # "VARIABLE= value" ¶ó°í Çϸé, #+ ½ºÅ©¸³Æ®´Â "value" ¸í·É¾î°¡ ȯ°æº¯¼ö "VARIABLE"À» ""·Î ¼¼ÆÃÇØ¼ #+ ½ÇÇàµÇ´Â °ÍÀ¸·Î ÀνÄÇÕ´Ï´Ù. #------------------------------------------------------------------------- echo hello # º¯¼ö ÂüÁ¶°¡ ¾Æ´Ï°í ±×³É "hello"¶õ ¹®ÀÚ¿ÀÔ´Ï´Ù. echo $hello echo ${hello} # À§¿Í ¶È°°½À´Ï´Ù. echo "$hello" echo "${hello}" echo hello="A B C D" echo $hello echo "$hello" # ÀÌÁ¦ echo $hello ¿Í echo "$hello" ´Â ´Ù¸¥ °á°ú°¡ ³ª¿É´Ï´Ù. # º¯¼ö¸¦ Äõ¿ìÆÃÇØÁÖ¸é °ø¹é¹®ÀÚ°¡ º¸Á¸µË´Ï´Ù. echo echo '$hello' # ÀÛÀº µû¿ÈÇ¥·Î º¯¼ö¸¦ Äõ¿ìÆÃÇØÁÖ¸é "$"°¡ ¹®ÀÚ ±×´ë·Î ÇØ¼®µÇ±â ¶§¹®¿¡ #+ º¯¼ö ÂüÁ¶°¡ ÀϾÁö ¾Ê½À´Ï´Ù. # Äõ¿ìÆÃÀÇ Á¾·ù¿¡ µû¶ó ´Þ¶óÁö´Â °á°ú¿¡ ÁÖ¸ñÇϼ¼¿ä. hello= # ³Î °ªÀ» °®µµ·Ï ¼¼ÆÃ. echo "\$hello (³Î °ª) = $hello" # º¯¼ö¸¦ ³Î °ªÀ¸·Î ¼¼ÆÃÇÏ´Â °Í°ú unset ÇÏ´Â °ÍÀº ºñ·Ï °á°ú´Â °°Áö¸¸ #+ ¾ö¿¬È÷ ´Ù¸¨´Ï´Ù(´ÙÀ½ ÂüÁ¶). # -------------------------------------------------------------- # ¿©·¯ º¯¼öµéÀ» °ø¹é¹®ÀÚ·Î ±¸ºÐÇØ¼ ÇÑ ÁÙ¿¡¼ ¼¼Æ®ÇÒ ¼ö ÀÖ½À´Ï´Ù. # ÇÏÁö¸¸ ÀÌ·¸°Ô Çϸé ÄÚµåÀÇ °¡µ¶¼ºÀÌ ¶³¾îÁö°í #+ ´Ù¸¥ ½Ã½ºÅÛÀ¸·Î À̽ÄÇÒ ¼ö°¡ ¾øÀ» ¼öµµ Àֱ⠶§¹®¿¡ Á¶½ÉÇØ¼ ½á¾ß µË´Ï´Ù. var1=variable1 var2=variable2 var3=variable3 echo echo "var1=$var1 var2=$var2 var3=$var3" # ¿¹Àü ¹öÀüÀÇ "sh"¿¡¼´Â ¹®Á¦°¡ »ý±æ¼öµµ ÀÖ½À´Ï´Ù. # -------------------------------------------------------------- echo; echo numbers="one two three" other_numbers="1 2 3" # º¯¼ö¿¡ °ø¹é¹®ÀÚ°¡ µé¾î ÀÖ´Ù¸é Äõ¿ìÆÃÀ» ÇØÁà¾ß ÇÕ´Ï´Ù. echo "numbers = $numbers" echo "other_numbers = $other_numbers" echo echo "uninitialized_variable = $uninitialized_variable" # ÃʱâÈ ¾È µÈ º¯¼ö´Â ³Î °ªÀ» °®½À´Ï´Ù(¾Æ¹« °ªµµ ¾ø½À´Ï´Ù). uninitialized_variable= # ¼±¾ð¸¸ Çϰí ÃʱâÈ ¾ÈÇÔ. #+ (À§¿¡¼Ã³·³ ³Î °ªÀ¸·Î ¼¼ÆÃÇÑ °Í°ú ¶È°°À½). echo "uninitialized_variable = $uninitialized_variable" # ¿©ÀüÈ÷ ³Î °ªÀ» °®°í Àֳ׿ä. uninitialized_variable=23 # ¼¼Æ®. unset uninitialized_variable # ¾ð¼¼Æ®. echo "uninitialized_variable = $uninitialized_variable" # ¿©ÀüÈ÷ ³Î °ªÀÔ´Ï´Ù. echo exit 0 |
ÁÖÀÇ |
ÃʱâȰ¡ ¾È µÈ º¯¼ö´Â "null" °ªÀ» °®´Âµ¥, ÀÌ´Â °ªÀÌ ÇÒ´ç ¾È µÈ °ÍÀÌÁö 0 À̶ó´Â °ªÀ» °®´Â´Ù´Â À̾߱Ⱑ ¾Æ´Õ´Ï´Ù! °ªÀ» ÇÒ´çÇϱâ Àü¿¡ º¯¼ö¸¦ ¾²°Ô µÇ¸é ¹®Á¦°¡ »ý±æ ¼ö ÀÖ½À´Ï´Ù. |