하기와 같이 실행하였는데, 에러가 발생하고 있습니다.
간단한 쉘 같은데, 에러가 발생하는 이유가 파악이 안되고 있습니다.
DEBIAN 및 Mac OS X에서도 동일한 현상이 발생합니다.
아시는 분의 고견 부탁 드려 봅니다.
#> wget http://216.165.129.135/distfiles/prettyping-1.0.1.tar.gz
#> tar xzvf prettyping-1.0.1.tar.gz
#> cd prettyping-1.0.1
#> chmod +x prettyping
#> ./prettyping
./prettyping: line 162: syntax error near unexpected token `"$1"'
./prettyping: line 162: ` PING_PARAMS+=("$1")'
#> vi prettyping
...
#TODO: Check if these parameters are numbers.
-last | --last ) LAST_N="$2" ; shift ;;
-columns | --columns ) OVERRIDE_COLUMNS="$2" ; shift ;;
-lines | --lines ) OVERRIDE_LINES="$2" ; shift ;;
-rttmin | --rttmin ) RTT_MIN="$2" ; shift ;;
-rttmax | --rttmax ) RTT_MAX="$2" ; shift ;;
* )
PING_PARAMS+=("$1") <======================== !!!
;;
esac
shift
ÀÌ ºÎºÐÀÌ ¾öÇÑ ¿É¼ÇÀ» ³Ö¾úÀ¸´Ï ´Ù½Ã³Ö¾î¶ó´Â ¸ñÀûÀΰ¡¿ä ?
exit ·Î ¹Ù²Ù°í ¾öÇÑ ¿É¼Ç ³Ö¾úÀ»¶§ Á¾·áµÇ¸é ¹®¹ý¿À·ù ¾Æ´Ñ°¡¿ä ?
#> ./prettyping 1.1.1.1
./prettyping 1.1.1.1
./prettyping: line 162: syntax error near unexpected token `"$1"'
./prettyping: line 162: ` PING_PARAMS+=("$1")'
Å« Àǹ̰¡ ¾ø´Â µíÇѵ¥ ù¹ø° ¶óÀÎ #!/usr/bin/env bash => #!/usr/bin/bash·Î Á÷Á¢ bash·Î ÁöÁ¤Çغ¸¼¼¿ä
/usr/bin/bash --versionÀ¸·Î ¹öÀü È®ÀÎÇØ º¸¼¼¿ä
¿À·ù°¡ ³ ÇØ´ç ¶óÀÎÀÇ Àǹ̴ - ȤÀº -- ¿É¼ÇÀ» ÁÖ¸é ÇØ´ç ¿É¼ÇÀÚü°¡ $1 ÆĶó¹ÌÅÍ°¡ µÇ°í
$2´Â ÇØ´ç ¿É¼Ç¿¡ ÁØ °ªÀ» ÀǹÌÇÏ´Â °ÍÀ¸·Î Ç¥½ÃÇϽÅ
PING_PARAMS+=("$1") ºÎºÐÀº ÀÌ·± ¿É¼ÇÀ» ÁÖÁö ¾ÊÀ¸¸é ÀÌ°Ô ¹Ù·Î ping optionÀÌ µË´Ï´Ù.
±×¸®°í - ȤÀº -- ¿É¼Ç µÚ¾î shift´Â šv¿¡ ÁöÁ¤ÇÑ ÆĶó¹ÌÅ͸¦ Çϳª¾¿ ¾ÕÀ¸·Î ´ç±â°Ô µË´Ï´Ù.
./prettyping -last 10 192.168.0.11 ÀÌ·¸°Ô ¼öÇàÇß´Ù°í °¡Á¤ÇÏ¸é ´ÙÀ½°ú °°½À´Ï´Ù.
case¹®¿¡ -last | --last ¿É¼Ç¿¡¼ ÀÌ°Ô $1 °ªÀ¸·Î ¸ÅĪµÇ°í µÚ¿¡ ÁöÁ¤ÇÑ °ªÀÌ $2°¡ µË´Ï´Ù.
±×·±ÈÄ °ªÀÌ Çϳª shift Çؼ ¿Å±â°í case¹® Á¾·á(esac)ÈÄ °ªÀ» Çϳª shift ½ÃÄѼ
°á±¹ ip °ªÀÌ PING_PARAMS¿¡ ¹è¿·Î Ãß°¡µË´Ï´Ù.
ÁöÁ¤ÇÑ ¸ðµç ÆĶó¹ÌÅ͸¦ ÆĽÌÇÒ¶§±îÁö while¹®ÀÌ µ½´Ï´Ù.
command parameter parsing ÀϹÝÀûÀÎ ¹æ¹ýÀÔ´Ï´Ù.
±×¸®°í pingÀÌ OS ¸¶´Ù optionÀÌ Á¶±Ý¾¿ ´Ù¸¨´Ï´Ù.