°í±Þ Bash ½ºÅ©¸³ÆÃ °¡À̵å: Bash¸¦ ÀÌ¿ëÇÑ ½© ½ºÅ©¸³ÆÃ ¿ÏÀü °¡À̵å | ||
---|---|---|
ÀÌÀü | 9Àå. º¯¼ö Àç°ËÅä(Variables Revisited) | ´ÙÀ½ |
º¯¼öÀÎ parameterÀÇ °ªÀ̶õ ¶æÀ¸·Î¼, $parameter¶ó°í ÇÑ °Í°ú °°½À´Ï´Ù. ¾î¶² ¹®¸Æ¿¡¼´Â ${parameter}¶ó°í È®½ÇÈ÷ ½á Áà¾ß µ¿ÀÛÇÏ´Â ¼öµµ ÀÖ½À´Ï´Ù.
¹®ÀÚ¿ º¯¼öµéÀ» ¿¬°áÇÒ ¶§ ¾²ÀÏ ¼ö ÀÖ½À´Ï´Ù.
your_id=${USER}-on-${HOSTNAME} echo "$your_id" # echo "Old \$PATH = $PATH" PATH=${PATH}:/opt/bin # ½ºÅ©¸³Æ®°¡ µµ´Â µ¿¾È $PATH ¿¡ /opt/bin À» Ãß°¡. echo "New \$PATH = $PATH" |
¸Å°³º¯¼ö°¡ ¼¼Æ®µÇÁö ¾Ê¾Ò´Ù¸é default¸¦ »ç¿ëÇÕ´Ï´Ù.
echo ${username-`whoami`} # $usernameÀÌ ¿©ÀüÈ÷ ¼¼Æ®µÇ¾î ÀÖÁö ¾Ê´Ù¸é `whoami`ÀÇ °á°ú¸¦ ¿¡ÄÚ. |
Âü°í: ÀÌ·¸°Ô Çϸé ${parameter:-default}¶ó°í ÇÏ´Â °Í°ú °ÅÀÇ ºñ½ÁÇÏÁö¸¸ :ÀÌ ÀÖÀ» ¶§´Â ¸Å°³º¯¼ö°¡ ¼±¾ð¸¸ µÇ¾î °ªÀÌ ³ÎÀÏ °æ¿ì¿¡µµ ±âº»°ªÀ» Àû¿ë½Ãŵ´Ï´Ù.
#!/bin/bash username0= # username0 ´Â ¼±¾ð¸¸ µÇ°í ³Î·Î ¼¼Æ®µÆ½À´Ï´Ù. echo "username0 = ${username0-`whoami`}" # ¿¡ÄÚ µÇÁö ¾Ê½À´Ï´Ù. echo "username1 = ${username1-`whoami`}" # username1 ´Â ¼±¾ðµÇÁö ¾Ê¾Ò½À´Ï´Ù. # ¿¡ÄÚ µË´Ï´Ù. username2= # username2 ´Â ¼±¾ð¸¸ µÇ°í ³Î°í ¼¼Æ®µÆ½À´Ï´Ù. echo "username2 = ${username2:-`whoami`}" # Á¶°Ç Å×½ºÆ®½Ã - °¡ ¾Æ´Ï°í :- ¸¦ ½è±â ¶§¹®¿¡ ¿¡ÄÚ µË´Ï´Ù. exit 0 |
¸Å°³º¯¼ö°¡ ¼¼Æ® µÇ¾î ÀÖÁö ¾Ê´Ù¸é ±âº»°ªÀ¸·Î ¼¼Æ®.
µÎ ÇüÅ´ °ÅÀÇ ºñ½ÁÇÏÁö¸¸ :ÀÌ ÀÖÀ» ¶§´Â À§ÀÇ °æ¿ìó·³ $parameter°¡ ¼±¾ð¸¸ µÇ°í °ªÀÌ ³ÎÀÏ °æ¿ì¿¡µµ ±âº»°ªÀ¸·Î ¼¼Æ® ½ÃŲ´Ù´Â Â÷ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù [1]
echo ${username=`whoami`} # "username" º¯¼ö¸¦ `whoami`ÀÇ °á°ú·Î ¼¼Æ®. |
¸Å°³º¯¼ö°¡ ¼¼Æ®µÇ¾î ÀÖ´Ù¸é alt_value¸¦ ¾²°í ¾Æ´Ï¶ó¸é ³Î ½ºÆ®¸µÀ» ¾¹´Ï´Ù.
ÀÌ µÎ ÇüÅ´ °ÅÀÇ ºñ½ÁÇÏÁö¸¸ parameter°¡ ¼±¾ðµÇ°í ³ÎÀÏ °æ¿ì¿¡ :ÀÌ ÀÖ°í ¾ø°íÀÇ Â÷À̰¡ ³ªÅ¸³³´Ï´Ù. ¾Æ·¡¸¦ º¸¼¼¿ä.
echo "###### \${parameter+alt_value} ########" echo a=${param1+xyz} echo "a = $a" # a = param2= a=${param2+xyz} echo "a = $a" # a = xyz param3=123 a=${param3+xyz} echo "a = $a" # a = xyz echo echo "###### \${parameter:+alt_value} ########" echo a=${param4:+xyz} echo "a = $a" # a = param5= a=${param5:+xyz} echo "a = $a" # a = # a=${param5+xyz} ¿Í °á°ú°¡ ´Ù¸£ÁÒ? param6=123 a=${param6+xyz} echo "a = $a" # a = xyz |
¸Å°³º¯¼ö°¡ ¼¼Æ®µÇ¾î ÀÖÀ¸¸é ±× °ªÀ» ¾²°í ¾Æ´Ï¶ó¸é err_msg¸¦ Ãâ·Â.
µÎ Çüŵµ ¿ª½Ã ºñ½ÁÇÏÁö¸¸ :Àº parameter°¡ ¼±¾ð¸¸ µÇ°í ³ÎÀÏ °æ¿ì¿¡¸¸ Â÷ÀÌÁ¡ÀÌ ³ªÅ¸³³´Ï´Ù.
¿¹ 9-10. ¸Å°³º¯¼ö ġȯ°ú : ¾²±â
#!/bin/bash # ¸î°³ÀÇ ½Ã½ºÅÛ È¯°æ º¯¼ö È®ÀÎ # ¿¹¸¦ µé¾î, ÄÜ¼Ö »ç¿ëÀÚÀÇ À̸§À» ³ªÅ¸³»´Â $USER °¡ ¼¼Æ® µÅ ÀÖÁö ¾Ê´Ù¸é, #+ ½Ã½ºÅÛÀº ¿©·¯ºÐÀ» ÀνÄÇÏÁö ¸øÇÕ´Ï´Ù. : ${HOSTNAME?} ${USER?} ${HOME?} ${MAIL?} echo echo "½Ã½ºÅÛ À̸§Àº $HOSTNAME ÀÔ´Ï´Ù." echo "¿©·¯ºÐÀÇ À̸§Àº $USER ÀÔ´Ï´Ù." echo "¿©·¯ºÐÀÇ È¨µð·ºÅ丮´Â $HOME ÀÔ´Ï´Ù." echo "¿©·¯ºÐÀÇ ¸ÞÀÏ INBOX´Â $MAIL ¿¡ ÀÖ½À´Ï´Ù." echo echo "ÀÌ ¸Þ¼¼Áö¸¦ Àаí ÀÖ´Ù¸é," echo "Áß¿äÇÑ È¯°æ º¯¼ö°¡ ¼¼Æ® µÇ¾î ÀÖ´Ù´Â ¶æÀÔ´Ï´Ù." echo echo # ------------------------------------------------------ # ${variablename?} µµ ½ºÅ©¸³Æ®¿¡¼ º¯¼ö°¡ ¼¼Æ® µÇ¾î ÀÖ´ÂÁö¸¦ #+ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ThisVariable=Value-of-ThisVariable # ¹®ÀÚ¿ º¯¼ö´Â º¯¼ö À̸§¿¡ ¾µ ¼ö ¾ø´Â ¹®ÀÚ°¡ #+ ¼¼Æ®µÉ ¼öµµ ÀÖÀ¸´Ï ÁÖÀÇÇϼ¼¿ä. : ${ThisVariable?} echo "ThisVariable ÀÇ °ªÀº $ThisVariable." echo echo : ${ZZXy23AB?"ZZXy23AB ´Â ¼¼Æ®µÇÁö ¾Ê¾Ò½À´Ï´Ù."} # ZZXy23AB ¿¡ °ªÀÌ ¼¼Æ®µÇ¾î ÀÖÁö ¾Ê´Ù¸é, #+ ¿¡·¯ ¸Þ¼¼Áö¸¦ »Ñ¸®°í Á¾·áÇÒ °ÍÀÔ´Ï´Ù. # ¿¡·¯ ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. # : ${ZZXy23AB?"ZZXy23AB ´Â ¼¼Æ®µÇÁö ¾Ê¾Ò½À´Ï´Ù."} # ´ÙÀ½°ú ¶È°°Àº °á°ú: dummy_variable=${ZZXy23AB?} # dummy_variable=${ZZXy23AB?"ZXy23AB ´Â ¼¼Æ®µÇÁö ¾Ê¾Ò½À´Ï´Ù."} # # echo ${ZZXy23AB?} >/dev/null echo "À§¿¡¼ ½ºÅ©¸³Æ®°¡ Á¾·áµÆ±â ¶§¹®¿¡ ÀÌ ¸Þ¼¼Áö´Â ¾È º¸ÀÔ´Ï´Ù." HERE=0 exit $HERE # ¿©±â¼ Á¾·áµÇÁö *¾Ê½À´Ï´Ù*. |
¸Å°³º¯¼ö ġȯ°ú È®Àå. ´ÙÀ½ ½ÄµéÀº expr ¹®ÀÚ¿ ¿¬»êÁß match¿¡ ´ëÇØ ºÎÁ·ÇÑ ºÎºÐÀ» º¸¿ÏÇØ ÁÝ´Ï´Ù (¿¹ 12-6 Âü°í). ÁÖ·Î, ÆÄÀÏ °æ·Î¸íÀ» ÆÄ½ÌÇÒ ¶§ ¾²ÀÔ´Ï´Ù.
º¯¼ö ±æÀÌ/¹®ÀÚ¿Á¶°¢(substring) »èÁ¦
¹®ÀÚ¿ ±æÀÌ ($varÀÇ ¹®ÀÚ °¹¼ö). ¹è¿ÀÇ °æ¿ì¿¡, ${#array}¶ó°í ÇÏ¸é ¹è¿ÀÇ Ã¹¹øÂ° ¿ä¼ÒÀÇ ±æÀ̸¦ ¾Ë·ÁÁÝ´Ï´Ù.
Âü°í: ¿¹¿Ü:
${#*} ¿Í ${#@} ´Â À§Ä¡ ¸Å°³º¯¼öÀÇ °¹¼ö¸¦ ¾Ë·ÁÁÝ´Ï´Ù.
¹è¿¿¡ ´ëÇØ ${#array[*]} ³ª ${#array[@]} ¶ó°í ÇÏ¸é ¹è¿ ¿ä¼ÒÀÇ °¹¼ö¸¦ ¾Ë·ÁÁÝ´Ï´Ù.
¿¹ 9-11. º¯¼öÀÇ ±æÀÌ
#!/bin/bash # length.sh E_NO_ARGS=65 if [ $# -eq 0 ] # ÀÌ ½ºÅ©¸³Æ®¿¡¼´Â ¸í·É¾îÁÙ ÀÎÀÚ°¡ ÇÊ¿äÇÕ´Ï´Ù. then echo "Çϳª ÀÌ»óÀÇ ¸í·É¾îÁÙ ÀÎÀÚ°¡ ÇÊ¿äÇÕ´Ï´Ù." exit $E_NO_ARGS fi var01=abcdEFGH28ij echo "var01 = ${var01}" echo "var01 ÀÇ ±æÀÌ = ${#var01}" echo "½ºÅ©¸³Æ®·Î ³Ñ¾î¿Â ¸í·É¾îÁÙ ÀÎÀÚ °¹¼ö = ${#@}" echo "½ºÅ©¸³Æ®·Î ³Ñ¾î¿Â ¸í·É¾îÁÙ ÀÎÀÚ °¹¼ö = ${#*}" exit 0 |
$patternÀÌ $varÀÇ ¾Õ ºÎºÐ°ú °¡Àå ±æ°Å³ª °¡Àå ª°Ô ÀÏÄ¡ÇÏ´Â ºÎºÐÀ» »èÁ¦.
¿¹ A-6¿¡¼ ¹ßÃéÇÑ »ç¿ë¹ý ¿¹Á¦:
# "days-between.sh" ¿¹Á¦¿¡¼ ¾²ÀÎ ÇÔ¼ö. # ÁÖ¾îÁø ÀÎÀÚÀÇ ¾Õ ºÎºÐ¿¡ µé¾îÀÖ´Â Çϳª ÀÌ»óÀÇ 0 À» »èÁ¦. strip_leading_zero () # ³¯Â¥³ª ¿ùÀÇ ¾Õ ºÎºÐ¿¡ ³ª¿À´Â 0À» »èÁ¦ÇÏÁö ¾ÊÀ¸¸é { # Bash °¡ 8Áø¼ö·Î ÇØ¼®Çϱ⠶§¹®¿¡(POSIX.2, sect 2.9.2.1) val=${1#0} # ÀÌ·¸°Ô ÇØ ÁÖ´Â°Ô ÁÁ½À´Ï´Ù. return $val } |
´Ù¸¥ »ç¿ë¹ý ¿¹Á¦:
echo `basename $PWD` # ÇöÀç µð·ºÅ丮ÀÇ basename. echo "${PWD##*/}" # ÇöÀç µð·ºÅ丮ÀÇ basename. echo echo `basename $0` # ½ºÅ©¸³Æ® À̸§. echo $0 # ½ºÅ©¸³Æ® À̸§. echo "${0##*/}" # ½ºÅ©¸³Æ® À̸§. echo filename=test.data echo "${filename##*.}" # µ¥ÀÌŸ # Àüü ÆÄÀÏÀ̸§¿¡¼ È®ÀåÀÚ. |
$patternÀÌ $varÀÇ µÞ ºÎºÐ°ú °¡Àå ª°Å³ª °¡Àå ±æ°Ô ÀÏÄ¡ÇÏ´Â ºÎºÐÀ» »èÁ¦.
Bash ¹öÀü 2¿¡´Â ¿É¼ÇÀÌ ´õ ´Ã¾ú½À´Ï´Ù.
¿¹ 9-12. ¸Å°³º¯¼ö ġȯ¿¡¼ÀÇ ÆÐÅÏ ¸ÅĪ
#!/bin/bash # ¸Å°³º¯¼ö ġȯ ¿¬»êÀÚÀÎ # ## % %% ¸¦ ½á¼ ÆÐÅÏ ¸ÅĪÇϱâ. var1=abcd12345abc6789 pattern1=a*c # * (¿ÍÀϵå Ä«µå)´Â a ¿Í c »çÀÌÀÇ ¸ðµç ¹®ÀÚ¿Í ÀÏÄ¡ÇÕ´Ï´Ù. echo echo "var1 = $var1" # abcd12345abc6789 echo "var1 = ${var1}" # abcd12345abc6789 (´Ù¸¥ ÇüÅÂ) echo "${var1} ¿¡ µé¾î ÀÖ´Â ±ÛÀÚ¼ö = ${#var1}" echo "pattern1 = $pattern1" # a*c ('a'¿Í 'c' »çÀÌÀÇ ¸ðµç ¹®ÀÚ) echo echo '${var1#$pattern1} =' "${var1#$pattern1}" # d12345abc6789 # ¾Õ¿¡¼ºÎÅÍ °¡Àå ª°Ô ÀÏÄ¡ÇÏ´Â 3 ±ÛÀÚ¸¦ »èÁ¦ abcd12345abc6789 # ^^^^^^^^^^ |-| echo '${var1##$pattern1} =' "${var1##$pattern1}" # 6789 # ¾Õ¿¡¼ºÎÅÍ °¡Àå ±æ°Ô ÀÏÄ¡ÇÏ´Â 12 ±ÛÀÚ¸¦ »èÁ¦ abcd12345abc6789 # ^^^^^^^^^^ |----------| echo; echo pattern2=b*9 # 'b'¿Í '9' »çÀÌÀÇ ¸ðµç ¹®ÀÚ. echo "var1 = $var1" # abcd12345abc6789 ¸¦ °è¼Ó ¾¹´Ï´Ù. echo "pattern2 = $pattern2" echo echo '${var1%pattern2} =' "${var1%$pattern2}" # abcd12345a # µÚ¿¡¼ºÎÅÍ °¡Àå ª°Ô ÀÏÄ¡ÇÏ´Â 6 ±ÛÀÚ¸¦ »èÁ¦ abcd12345abc6789 # ^^^^^^^^^^ |----| echo '${var1%%pattern2} =' "${var1%%$pattern2}" # a # µÚ¿¡¼ºÎÅÍ °¡Àå ±æ°Ô ÀÏÄ¡ÇÏ´Â 12 ±ÛÀÚ¸¦ »èÁ¦ abcd12345abc6789 # ^^^^^^^^^^ |-------------| # ÀÌ·¸°Ô ¿Ü¿ì¼¼¿ä. # # °ú ## Àº ¹®ÀÚ¿ÀÇ ¾ÕÂÊ¿¡¼ºÎÅÍ µ¿ÀÛÀ» Çϰí, # % ¿Í %% ´Â µÚÂÊ¿¡¼ºÎÅÍ µ¿ÀÛÀ» ÇÕ´Ï´Ù. echo exit 0 |
¿¹ 9-13. ÆÄÀÏ È®ÀåÀÚ ¹Ù²Ù±â:
#!/bin/bash # rfe # --- # ÆÄÀÏ È®ÀåÀÚ ¹Ù²Ù±â(Renaming file extensions). # # rfe ¿ø·¡È®ÀåÀÚ »õÈ®ÀåÀÚ # # ¿¹Á¦: # ÇöÀç µð·ºÅ丮ÀÇ *.gif ¸¦ *.jpg ·Î ¹Ù²Ù·Á¸é, # rfe gif jpg ARGS=2 E_BADARGS=65 if [ $# -ne $ARGS ] then echo "»ç¿ë¹ý: `basename $0` ¿ø·¡È®ÀåÀÚ »õÈ®ÀåÀÚ" exit $E_BADARGS fi for filename in *.$1 # ù¹øÂ° ÀÎÀÚ·Î ³¡³ª´Â ÆÄÀÏ ¸ñ·ÏÀ» ÀüºÎ Ž»ö. do mv $filename ${filename%$1}$2 # ù¹øÂ° ÀÎÀÚ¿Í ÀÏÄ¡ÇÏ´Â ºÎºÐÀ» ¶¼¾î³»°í, # µÎ¹øÂ° ÀÎÀÚ¸¦ µ¡ºÙÀÓ. done exit 0 |
¿©±â¼ ¼Ò°³ÇÏ´Â °ÍµéÀº ksh¿¡¼ µû ¿Â °ÍÀÔ´Ï´Ù.
var º¯¼ö°¡ pos ¿É¼ÂºÎÅÍ ½ÃÀÛÇϵµ·Ï È®Àå.
º¯¼ö var°¡ pos¿¡¼ ÃÖ´ë len¸¸ÅÀÇ ±æÀ̸¦ °®µµ·Ï È®Àå. ÀÌ ¿¬»êÀÚÀÇ Ã¢Á¶ÀûÀÎ »ç¿ë ¿¹Á¦¸¦ º¸·Á¸é ¿¹ A-9 Âü°í.
var¿¡ ù¹øÂ°·Î ÀÏÄ¡ÇÏ´Â pattÀ» replacement·Î ´ëÄ¡½ÃÅ´.
replacement¸¦ ¾È ÀûÀ¸¸é pattÀÌ Áö¿öÁü.
Àü¿ª ´ëÄ¡(Global replacement). var¿¡¼ ÀÏÄ¡ÇÏ´Â ¸ðµç pattÀ» replacement·Î ´ëÄ¡½ÃÅ´.
À§ÀÇ °æ¿ì¿Í ºñ½ÁÇÏ°Ô replacement¸¦ ¾È Àû¾îÁÖ¸é ¸ðµç pattÀÌ Áö¿öÁü.
¿¹ 9-14. ÀÓÀÇÀÇ ¹®ÀÚ¿À» ÆÄ½ÌÇϱâ À§ÇØ ÆÐÅÏ ¸ÅĪ »ç¿ëÇϱâ
#!/bin/bash var1=abcd-1234-defg echo "var1 = $var1" t=${var1#*-*} echo "var1 (ù¹øÂ° - ¸¦ Æ÷ÇÔÇÑ ºÎºÐ±îÁö Àß¶ó³¿) = $t" # # ÀÌ °¡Àå ªÀº ¹®ÀÚ¿°ú ¸ÅÄ¡Çϰí * °¡ ºó ¹®ÀÚ¿À» Æ÷ÇÔÇÑ ¸ðµç°Í°ú #+ ÀÏÄ¡Çϱ⠶§¹®¿¡ t=${var1#*-} µµ ¶È°°ÀÌ µ¿ÀÛÇÕ´Ï´Ù. # (S. C. °¡ ÁöÀûÇØ ÁÖ¾ú½À´Ï´Ù.) t=${var1##*-*} echo "var1¿¡ \"-\" ÀÌ µé¾îÀÖ´Ù¸é ºó ¹®ÀÚ¿À» ¸®ÅÏÇÔ... var1 = $t" t=${var1%*-*} echo "var1 (Á¦ÀÏ ¸¶Áö¸·ÀÇ - ºÎÅÍ ³¡±îÁö Àß¶ó³¿) = $t" echo # ------------------------------------------- path_name=/home/bozo/ideas/thoughts.for.today # ------------------------------------------- echo "path_name = $path_name" t=${path_name##/*/} echo "Á¢µÎ¾î°¡ Àß·ÁÁø path_name = $t" # ÀÌ °æ¿ì¿¡¼´Â t=`basename $path_name` À̶ó°í ÇØµµ ¶È°°½À´Ï´Ù. # t=${path_name%/}; t=${t##*/} ¶ó°í ÇÏ´Â °ÍÀÌ Á» ´õ ÀϹÝÀûÀÎ ÇØ¹ýÀÌÁö¸¸, #+ °¡²ûÀº ½ÇÆÐÇÒ ¼öµµ ÀÖ½À´Ï´Ù. # $path_name ÀÌ ´º¶óÀÎÀ¸·Î ³¡³¯ °æ¿ì¿¡´Â `basename $path_name` Àº Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê°ÚÁö¸¸, #+ À§ Ç¥Çö½ÄÀº Á¦´ë·Î µ¿ÀÛÇÒ °ÍÀÔ´Ï´Ù. # (Thanks, S.C.) t=${path_name%/*.*} # t=`dirname $path_name` ¶ó°í ÇÏ´Â °Í°ú ¶È°°½À´Ï´Ù. echo "Á¢¹Ì¾î°¡ Àß·ÁÁø path_name = $t" # ÀÌ·¸°Ô Çϸé "../", "/foo////", # "foo/", "/" °°Àº °æ¿ì¿¡´Â ½ÇÆÐÇÒ °ÍÀÔ´Ï´Ù. # basename Àº Á¢¹Ì¾î°¡ ¾ø°í dirname Àº ÀÖÀ» °æ¿ì¿¡ Á¢¹Ì¾î¸¦ »èÁ¦ÇÏ´Â °Í #+ ¿ª½Ã º¹ÀâÇÑ ¹®Á¦ÀÔ´Ï´Ù. # (Thanks, S.C.) echo t=${path_name:11} echo "ù¹øÂ° 11°³ ¹®ÀÚ°¡ Àß·Á³ª°£ $path_name = $t" t=${path_name:11:5} echo "ù¹øÂ° 11°³ ¹®ÀÚ°¡ Àß·Á³ª°¡°í ±æÀ̰¡ 5ÀÎ $path_name = $t" echo t=${path_name/bozo/clown} echo "\"bozo\" °¡ \"clown\" À¸·Î ´ëÄ¡µÈ $path_name = $t" t=${path_name/today/} echo "\"today\" °¡ »èÁ¦µÈ $path_name = $t" t=${path_name//o/O} echo "¸ðµç ¼Ò¹®ÀÚ o ¸¦ ´ë¹®ÀÚ·Î ¸¸µç $path_name = $t" t=${path_name//o/} echo "¸ðµç ¼Ò¹®ÀÚ o ¸¦ »èÁ¦ÇÑ $path_name = $t" exit 0 |
varÀÇ Á¢µÎ¾î(prefix)°¡ patt°ú ÀÏÄ¡Çϸé pattÀ» replacement·Î ġȯ.
varÀÇ Á¢¹Ì¾î(suffix)°¡ patt°ú ÀÏÄ¡Çϸé pattÀ» replacement·Î ġȯ.
¿¹ 9-15. ¹®ÀÚ¿ÀÇ Á¢µÎ, Á¢¹Ì¾î¿¡¼ ÀÏÄ¡ÇÏ´Â ÆÐÅÏ Ã£±â
#!/bin/bash # ¹®ÀÚ¿ÀÇ Á¢µÎ¾î/Á¢¹Ì¾î ¿¡¼ ÆÐÅÏ Ä¡È¯ Çϱâ. v0=abc1234zip1234abc # ¿ø·¡ º¯¼ö. echo "v0 = $v0" # abc1234zip1234abc echo # ¹®ÀÚ¿ÀÇ Á¢µÎ¾î(½ÃÀÛ)¿¡¼ ÀÏÄ¡. v1=${v0/#abc/ABCDEF} # abc1234zip1234abc # |-| echo "v1 = $v1" # ABCDE1234zip1234abc # |---| # ¹®ÀÚ¿ÀÇ Á¢¹Ì¾î(³¡)¿¡¼ ÀÏÄ¡. v2=${v0/%abc/ABCDEF} # abc1234zip123abc # |-| echo "v2 = $v2" # abc1234zip1234ABCDEF # |----| echo # ---------------------------------------------------- # ¹®ÀÚ¿ÀÇ ½ÃÀÛ°ú ³¡¿¡¼ ÀÏÄ¡°¡ ÀϾ¾ßÁö¸¸ #+ ´ëÄ¡°¡ ÀϾ´Ï´Ù. # ---------------------------------------------------- v3=${v0/#123/000} # ÀÏÄ¡ÇÏÁö¸¸ ½ÃÀÛ ºÎºÐÀÌ ¾Æ´Õ´Ï´Ù. echo "v3 = $v3" # abc1234zip1234abc # *´ëÄ¡°¡ ¾È ÀϾ´Ï´Ù*. v4=${v0/%123/000} # ÀÏÄ¡ÇÏÁö¸¸ ³¡ ºÎºÐÀÌ ¾Æ´Õ´Ï´Ù. echo "v4 = $v4" # abc1234zip1234abc # *´ëÄ¡°¡ ¾È ÀϾ´Ï´Ù*. exit 0 |
ÀÌ¹Ì ¼±¾ðµÈ º¯¼öµé Áß¿¡ varprefix·Î ½ÃÀÛÇÏ´Â º¯¼öµé.
xyz23=whatever xyz24= a=${!xyz*} # ¼±¾ðµÈ º¯¼öÁß "xyz"·Î ½ÃÀÛÇÏ´Â º¯¼ö·Î È®Àå. echo "a = $a" # a = xyz23 xyz24 a=${!xyz@} # À§¿Í °°À½. echo "a = $a" # a = xyz23 xyz24 # Bash 2.04 ¹öÀü¿¡¼ ÀÌ ±â´ÉÀÌ Ãß°¡µÊ. |
[1] | ºñ´ëÈÇü ½ºÅ©¸³Æ®¿¡¼ $parameter °¡ ³ÎÀ̸é 127 Á¾·á »óŸ¦ °®°í Á¾·áµË´Ï´Ù("command not found" ¿¡·¯ ÄÚµå). |