Áö¿ª º¯¼ö´Â ÄÚµå ºí·°À̳ª ÇÔ¼ö¿¡¼¸¸ ³ªÅ¸³³´Ï´Ù(ÇÔ¼ö¿¡¼ÀÇ Áö¿ª º¯¼ö Âü°í).
½©ÀÇ µ¿ÀÛ°ú »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â º¯¼ö
Âü°í: ¾ÆÁÖ ÀϹÝÀûÀÎ »óȲ¿¡¼´Â °¢ ÇÁ·Î¼¼½º´Â ÀÚ½ÅÀÌ ÂüÁ¶ÇÒ Á¤º¸µéÀ» ´ã°í ÀÖ´Â º¯¼öµéÀÇ ±×·ìÀÎ "ȯ°æ"À̶õ °ÍÀ» °®°í ÀÖ½À´Ï´Ù. ÀÌ·± °üÁ¡¿¡¼ º¸¸é, ½©µµ ´Ù¸¥ ÇÁ·Î¼¼½ºµé°ú ´Ù¸¦ ¹Ù ¾ø½À´Ï´Ù.
½©Àº ÀÚ½ÅÀÌ ½ÃÀÛµÉ ¶§¸¶´Ù ÀÚ½ÅÀÇ È¯°æ º¯¼ö¿¡ ´ëÀÀÇÏ´Â ½© º¯¼ö¸¦ ¸¸µé¾î ³À´Ï´Ù. ½© º¯¼ö¸¦ ¾÷µ¥ÀÌÆ®Çϰųª »õ·Ó°Ô Ãß°¡ÇÏ¸é ½©Àº ÀÚ½ÅÀÇ È¯°æ º¯¼ö¸¦ ¾÷µ¥ÀÌÆ® ½ÃÅ°°í ½©ÀÇ ¸ðµç ÀÚ½Ä ÇÁ·Î¼¼½º(½©¿¡¼ ½ÇÇà½ÃŲ ¸í·É¾îµé)´Â ±× ȯ°æÀ» ¹°·Á ¹Þ½À´Ï´Ù.
°æ°í | |
ȯ°æ¿ëÀ¸·Î ÇÒ´çµÈ °ø°£Àº Á¦ÇѵǾî ÀÖ½À´Ï´Ù. ȯ°æ º¯¼ö¸¦ ³Ê¹« ¸¹ÀÌ ¸¸µé°Å³ª ÇÑ È¯°æ º¯¼ö°¡ °ø°£À» Áö³ªÄ¡°Ô ¸¹ÀÌ »ç¿ëÇÑ´Ù¸é ¹®Á¦°¡ »ý±æ ¼ö ÀÖ½À´Ï´Ù.
(¸íÈ®ÇÑ ¼³¸íÀ» ÇØ ÁÖ°í À§ÀÇ ¿¹Á¦¸¦ Á¦°øÇØÁØ S. C. ¿¡°Ô °¨»ç) |
¸¸¾à¿¡ ½ºÅ©¸³Æ®°¡ ȯ°æ º¯¼ö¸¦ ¼¼Æ®ÇÏ¸é ±× º¯¼ö´Â "export"µÇ¾î¾ß ÇÕ´Ï´Ù. Áï, ±× ½ºÅ©¸³Æ®¿¡ ÇØ´çÇϴ ȯ°æÀ¸·Î º¸°íµÇ¾î¾ß ÇÑ´Ù´Â ¶æÀÔ´Ï´Ù. export ¸í·É¾î°¡ ÀÌ ÀÏÀ» ÇØ ÁÝ´Ï´Ù.
Âü°í: ½ºÅ©¸³Æ®´Â º¯¼ö¸¦ ¿ÀÁ÷ ÀÚ½ÅÀÇ ÀÚ½Ä ÇÁ·Î¼¼½º¿¡°Ô¸¸ export ÇÒ ¼ö ÀÖ½À´Ï´Ù. Áï, ÀÚ½ÅÀÌ ¸¸µé¾î³½ ¸í·É¾î³ª ÇÁ·Î¼¼½ºµé¸¸ Àû¿ëÀ» ¹Þ½À´Ï´Ù. ¸í·É¾îÁÙ¿¡¼ ½ÇÇàµÈ ½ºÅ©¸³Æ®´Â ƯÁ¤ º¯¼ö¸¦ ¸í·É¾îÁ٠ȯ°æÀ¸·Î °Å²Ù·Î export ÇÒ ¼ö ¾ø½À´Ï´Ù. ÀÚ½Ä ÇÁ·Î¼¼½º´Â ÀÚ½ÅÀ» ¸¸µé¾î³½ ºÎ¸ð ÇÁ·Î¼¼½º¿¡°Ô ƯÁ¤ º¯¼ö¸¦ °Å²Ù·Î export ÇÒ ¼ö ¾ø½À´Ï´Ù.
---
¸í·É¾îÁÙ¿¡¼ ½ºÅ©¸³Æ®·Î ³Ñ¾î¿Â ÀÎÀÚµé·Î $0, $1, $2, $3... ÀÌ·±½ÄÀ¸·Î Ç¥ÇöµÇ´Âµ¥ $0 Àº ½ºÅ©¸³Æ®ÀÇ À̸§ ±× ÀÚü¸¦ ³ªÅ¸³»°í $1 Àº ù¹ø° ÀÎÀÚ¸¦, $2 ´Â µÎ¹ø°¸¦, $3 Àº ¼¼¹ø°¸¦ ³ªÅ¸³»´Â ½ÄÀÔ´Ï´Ù. [1] $9 ´ÙÀ½ÀÇ ÀÎÀÚ´Â ${10}, ${11}, ${12} ó·³ Áß°ýÈ£·Î ¹¾îÁà¾ß ÇÕ´Ï´Ù.
¿¹ 5-5. À§Ä¡ ¸Å°³º¯¼ö
#!/bin/bash # ÃÖ¼ÒÇÑ 10 °³ÀÇ ¸Å°³º¯¼ö¸¦ Á༠ÀÌ ½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃÅ°¼¼¿ä. ¿¹¸¦ µé¸é, # ./scriptname 1 2 3 4 5 6 7 8 9 10 echo echo "½ºÅ©¸³Æ® À̸§Àº \"$0\"." # ÇöÀç µð·ºÅ丮¸¦ ³ªÅ¸³»´Â ./ °¡ Ãß°¡µÇ¾î ÀÖÁÒ. echo "½ºÅ©¸³Æ® À̸§Àº \"`basename $0`\"." # °æ·Î¸íÀ» ¶¼¾î ³À´Ï´Ù('basename' Âü°í). echo if [ -n "$1" ] # Å×½ºÆ® ÇÒ º¯¼ö¸¦ Äõ¿ìÆ® ÇØÁá½À´Ï´Ù. then echo "ù¹ø° ¸Å°³º¯¼ö´Â $1" # # À» À̽ºÄÉÀÌÇÁ ½ÃÅ°±â À§Çؼ Äõ¿ìÆ®¸¦ ÇØ Áà¾ß µË´Ï´Ù. fi if [ -n "$2" ] then echo "µÎ¹ø° ¸Å°³º¯¼ö´Â $2" fi if [ -n "$3" ] then echo "¼¼¹ø° ¸Å°³º¯¼ö´Â $3" fi # ... if [ -n "${10}" ] # $9 º¸´Ù Å« ¸Å°³º¯¼ö´Â {Áß°ýÈ£}·Î °¨½Î¾ß µË´Ï´Ù. then echo "¿¹ø° ¸Å°³º¯¼ö´Â ${10}" fi echo exit 0 |
¾î¶² ½ºÅ©¸³Æ®µéÀº ÀÚ½ÅÀÌ ºÒ¸° À̸§¿¡ µû¶ó ´Ù¸£°Ô µ¿ÀÛÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ·± ½ÄÀÇ µ¿ÀÛÀ» ¿øÇÑ´Ù¸é ½ºÅ©¸³Æ® ¾È¿¡¼ ÀڱⰡ ¾î¶»°Ô ºÒ·È´ÂÁö¸¦ ³ªÅ¸³»´Â $0À» È®ÀÎÇÏ¸é µË´Ï´Ù. ½ºÅ©¸³Æ®°¡ ¾î¶² À̸§À¸·Î ºÒ¸®µçÁö °£¿¡ $0Àº ±× À̸§À» Á¤È®ÇÏ°Ô ½Éº¼¸¯ ¸µÅ©ÇÏ°í Àֱ⠶§¹®ÀÔ´Ï´Ù.
ÀÛÀº Á¤º¸: ¸í·É¾îÁÙ ¸Å°³º¯¼ö¸¦ ¿¹»óÇÏ°í ÀÖ´Â ½ºÅ©¸³Æ®°¡ ¸Å°³º¯¼ö ¾øÀÌ ºÒ¸°´Ù¸é ³Î °ªÀÌ ÇÒ´çµÇ¾î ¿øÄ¡ ¾Ê´Â °á°ú¸¦ °¡Á®¿É´Ï´Ù. ÀÌ·± »óȲÀ» ÇÇÇÏ´Â ÇÑ °¡Áö ¹æ¹ýÀº À§Ä¡ ¸Å°³º¯¼ö¸¦ º¯¼ö¿¡ ÇÒ´çÇÏ´Â ¹®Àå¿¡¼ ¾çÂÊ¿¡ ¶È°°Àº ¾Æ¹« ¹®ÀÚ³ª ºÙÀÌ¸é µË´Ï´Ù.
variable1_=$1_ # ÀÌ·¸°Ô ÇØÁÖ¸é À§Ä¡ ¸Å°³ º¯¼ö°¡ ºñ¾îÀÖ´õ¶óµµ ¿¡·¯¸¦ ¸·¾ÆÁÝ´Ï´Ù. critical_argument01=$variable1_ # ½ÇÁ¦·Î º¯¼ö¸¦ ¾µ °÷¿¡¼ ´ÙÀ½Ã³·³ ÇØÁÖ¸é ¿¡·¯ ¹æÁö¿ë ¹®ÀÚ°¡ Àß·Á ³ª°©´Ï´Ù. variable1=${variable1_/_/} # $variable1_ ÀÌ "_"·Î ½ÃÀÛÇÒ ¶§¸¸ ºÎÈ¿°ú(Side effects)°¡ ÀÖ½À´Ï´Ù. # 9Àå¿¡¼ ³íÀÇÇÒ ¸Å°³º¯¼ö ġȯÁßÀÇ ÇÑ °¡Áö ¹æ¹ýÀ» ½á¼ º¯°æ ÆÐÅÏÀ» »èÁ¦ÇØ ÁÝ´Ï´Ù. # Á» ´õ È®½ÇÇÑ ¹æ¹ýÀº ¿øÇÏ´Â À§Ä¡ ¸Å°³º¯¼ö°¡ ³Ñ¾î ¿Ô´ÂÁö Å×½ºÆ®¸¦ ÇØ º¸´Â °ÍÀÔ´Ï´Ù. if [ -z $1 ] then exit $POS_PARAMS_MISSING fi |
---
¿¹ 5-6. wh, whois µµ¸ÞÀÎ ³×ÀÓ ·è¾÷
#!/bin/bash # ripe.net, cw.net, radb.net Áß ÇϳªÀÇ ¼¹ö¿¡ ´ëÇؼ # 'whois domain-name' ·è¾÷À» ½ÇÇà # ÀÌ ½ºÅ©¸³Æ® À̸§À» 'wh' ¶ó°í Çؼ /usr/local/bin ¿¡ ³Ö¾îµÎ¼¼¿ä. # ±×¸®°í ´ÙÀ½Ã³·³ ½Éº¼¸¯ ¸µÅ©¸¦ °Å¼¼¿ä. # ln -s /usr/local/bin/wh /usr/local/bin/wh-ripe # ln -s /usr/local/bin/wh /usr/local/bin/wh-cw # ln -s /usr/local/bin/wh /usr/local/bin/wh-radb if [ -z "$1" ] then echo "»ç¿ë¹ý: `basename $0` [domain-name]" exit 65 fi case `basename $0` in # ½ºÅ©¸³Æ® À̸§À» È®ÀÎÇؼ ÇØ´ç ¼¹ö¸¦ ºÎ¸¨´Ï´Ù. "wh" ) whois $1@whois.ripe.net;; "wh-ripe") whois $1@whois.ripe.net;; "wh-radb") whois $1@whois.radb.net;; "wh-cw" ) whois $1@whois.cw.net;; * ) echo "»ç¿ë¹ý: `basename $0` [domain-name]";; esac exit 0 |
---
shift ¸í·É¾î´Â À§Ä¡ ¸Å°³º¯¼ö¸¦ ¿ÞÂÊÀ¸·Î ÇÑ ´Ü°è¾¿ À̵¿½Ãŵ´Ï´Ù.
$1 <--- $2, $2 <--- $3, $3 <--- $4, µîµî.
¿ø·¡ÀÇ $1 Àº ¾ø¾îÁöÁö¸¸ $0 Àº ¹Ù²îÁö ¾Ê½À´Ï´Ù. À§Ä¡ ¸Å°³º¯¼ö°¡ ¸¹ÀÌ ÇÊ¿äÇÏ´Ù¸é {Áß°ýÈ£} Ç¥±â¹ýÀ¸·Î °¡´ÉÇÏÁö¸¸(¿¹ 5-5 Âü°í), shift ¸¦ ½á¼ ¿¹Àü 10°³¸¦ ¾µ ¼ö ÀÖ½À´Ï´Ù.
¿¹ 5-7. shift ¾²±â
#!/bin/bash # 'shift' ·Î ¸ðµç À§Ä¡ ¸Å°³º¯¼ö¸¦ ó¸®Çϱâ. # ÀÌ ½ºÅ©¸³Æ®ÀÇ À̸§À» shft µîÀÇ À̸§À¸·Î ¹Ù²Ù°í #+ ./shft a b c def 23 skidoo #+ °°Àº ½ÄÀ¸·Î ¸î °³ÀÇ ÀÎÀÚ¸¦ ³Ñ°Ü¼ ºÒ·¯ º¸¼¼¿ä. until [ -z "$1" ] # ¸ðµç ¸Å°³º¯¼ö¸¦ ´Ù ¾µ ¶§±îÁö... do echo -n "$1 " shift done echo # ¿©ºÐÀÇ ÇÑ ÁÙ. exit 0 |
[1] | °ü½ÀÀûÀ¸·Î, ½ºÅ©¸³Æ®¸¦ È£ÃâÇÏ´Â ÇÁ·Î¼¼½º´Â $0 ¸Å°³º¯¼ö¸¦, È£ÃâÇÏ´Â ½ºÅ©¸³Æ®ÀÇ À̸§À¸·Î ¼¼Æ®ÇÕ´Ï´Ù. execv ¸ÇÆäÀÌÁö¸¦ Âü°íÇϼ¼¿ä. |