[ BASH ½© ] ¿¡·¯ ¹ß»ý

   Á¶È¸ 3005   Ãßõ 0    

하기와 같이 실행하였는데, 에러가 발생하고 있습니다.

간단한 쉘 같은데, 에러가 발생하는 이유가 파악이 안되고 있습니다.

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






ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
È­¶õ 2019-05
PING_PARAMS+=("$1")

ÀÌ ºÎºÐÀÌ ¾öÇÑ ¿É¼ÇÀ» ³Ö¾úÀ¸´Ï ´Ù½Ã³Ö¾î¶ó´Â ¸ñÀûÀΰ¡¿ä ?

exit ·Î ¹Ù²Ù°í ¾öÇÑ ¿É¼Ç ³Ö¾úÀ»¶§ Á¾·áµÇ¸é ¹®¹ý¿À·ù ¾Æ´Ñ°¡¿ä ?
¹«¾Æ 2019-05
ÇÁ·Î±×·¥ ½ÇÇà½Ã ±× µÚ¿¡ ÆĶó¹ÌÅ͸¦ ´õ ³Ö¾î¾ß ÇÏ´Â °Å ¾Æ´Ñ°¡¿ä?
     
½ÇÁ¦ °ªÀ» ³Ö¾îµµ µ¿ÀÏÇÑ ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.

#> ./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")'
pil4 2019-05
archlinux¿¡¼­ ´Ù¿î¹Þ¾Æ¼­ Çغôµ¥ ½ÇÇà Àߵ˴ϴÙ. ¹º°¡ ´Ù¸¥ ¹®Á¦Àεí ÇÕ´Ï´Ù.
online9 2019-05
Oracle Linux 7.6¿¡¼­ ½ÇÇà Àߵ˴ϴÙ.
Å« Àǹ̰¡ ¾ø´Â µíÇѵ¥ ù¹ø° ¶óÀÎ #!/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ÀÌ Á¶±Ý¾¿ ´Ù¸¨´Ï´Ù.


QnA