Áö±Ý ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡¼ ¾²°í ÀÖ´Â bash´Â ¹öÀü 2ÀÔ´Ï´Ù. ¿¹Àü bash¿¡ ºñÇØ ¹è¿ º¯¼ö, ¹®ÀÚ¿°ú ÀÎÀÚ È®Àå, Çâ»óµÈ º¯¼ö °£Á¢ ÂüÁ¶µîÀ» Æ÷ÇÔÇÑ ´Ù¸¥ Ư¡µéÀÌ ¾÷µ¥ÀÌÆ® µÆ½À´Ï´Ù.
예 3-101. ¹®ÀÚ¿ È®Àå
#!/bin/bash # bash ¹öÀü 2¿¡¼ ¼Ò°³µÈ ¹®ÀÚ¿ È®Àå # $'xxx' ÇüÅÂÀÇ ¹®ÀÚ¿Àº Ç¥ÁØ À̽ºÄÉÀÌÇÁ ¹®ÀÚµéÀ» °®½À´Ï´Ù. echo $'º§À» 3¹ø ¿ï¸®±â \a \a \a' echo $'3¹øÀÇ Æû Çǵå(form feeds) \f \f \f' echo $'10¹øÀÇ ´º¶óÀÎ \n\n\n\n\n\n\n\n\n\n' exit 0 |
예 3-102. °£Á¢ º¯¼ö ÂüÁ¶ - »õ·Î¿î ¹æ¹ý
#!/bin/bash # º¯¼ö °£Á¢ ÂüÁ¶ # C++ ÀÇ ÂüÁ¶ Ư¼ºÀÌ ¾à°£ °¡¹ÌµÇ¾ú½À´Ï´Ù. a=letter_of_alphabet letter_of_alphabet=z # Á÷Á¢ ÂüÁ¶ echo "a = $a" # °£Á¢ ÂüÁ¶ echo "Now a = ${!a}" # ${!variable} ¶õ Ç¥±â¹ýÀº ¿¹ÀüÀÇ "eval var1=\$$var2" ¿¡ ºñÇØ ¾ÆÁÖ ÈǸ¢ÇÕ´Ï´Ù. echo t=table_cell_3 table_cell_3=24 echo "t = ${!t}" table_cell_3=387 echo "tÀÇ °ªÀÌ ${!t} ·Î ¹Ù²î¾ú½À´Ï´Ù." # ¹è¿À̳ª Å×À̺íÀÇ ¸â¹ö¸¦ ÂüÁ¶ÇÒ ¶§³ª # ´ÙÂ÷¿ø ¹è¿À» Èä³»³¾ °æ¿ì¿¡ ¾µ ¸¸ ÇÕ´Ï´Ù. # Àε¦½Ì ¿É¼ÇÀÌ¸é ´õ ÁÁ¾ÒÀ» °ÍÀÔ´Ï´Ù(ÈÞ~). exit 0 |
예 3-103. ¹è¿°ú ¾à°£ÀÇ Æ®¸¯À» ½á¼ ÇÑ ¹úÀÇ Ä«µå¿¡¼ 4¸í¿¡°Ô ¹«ÀÛÀ§·Î Ä«µå¸¦ µ¹¸®±â
#!/bin/bash2 # bash ¹öÀü 2¸¦ Ưº°È÷ ÁöÁ¤ÇØ ÁÖÁö ¾ÊÀ¸¸é Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê½À´Ï´Ù. # Ä«µå: # Ä«µå ÇÑ ¹ú¿¡¼ 4¸í¿¡°Ô ¹«ÀÛÀ§·Î Ä«µå µ¹¸®±â UNPICKED=0 PICKED=1 DUPE_CARD=99 LOWER_LIMIT=0 UPPER_LIMIT=51 CARDS_IN_SUITE=13 CARDS=52 declare -a Deck declare -a Suites declare -a Cards # ÇϳªÀÇ 3Â÷¿ø ¹è¿À̶ó¸é Á» ´õ ½±°í ´õ Á÷°üÀûÀ̾úÀ» °Ì´Ï´Ù. # ¾Æ¸¶ bash ´ÙÀ½ ¹öÀü¿¡¼´Â ´ÙÂ÷¿ø ¹è¿À» Áö¿øÇÒ °Ì´Ï´Ù. initialize_Deck () { i=$LOWER_LIMIT until [ $i -gt $UPPER_LIMIT ] do Deck[i]=$UNPICKED let "i += 1" done # ÇÑ ¹ú¿¡ ¼ÓÇÏ´Â ¸ðµç Ä«µå¸¦ ¼±ÅõÇÁö ¾ÊÀº »óÅ·Π¼¼Æ® echo } initialize_Suites () { Suites[0]=C # Ŭ·Î¹ö(Clubs) Suites[1]=D # ´ÙÀ̾Ƹóµå(Diamonds) Suites[2]=H # ÇÏÆ®(Hearts) Suites[3]=S # ½ºÆäÀ̵å(Spades) } initialize_Cards () { Cards=(2 3 4 5 6 7 8 9 10 J Q K A) # ¹è¿À» ÃʱâÈÇÏ´Â ´Ù¸¥ ¹æ¹ý } pick_a_card () { card_number=$RANDOM let "card_number %= $CARDS" if [ ${Deck[card_number]} -eq $UNPICKED ] then Deck[card_number]=$PICKED return $card_number else return $DUPE_CARD fi } parse_card () { number=$1 let "suite_number = number / CARDS_IN_SUITE" suite=${Suites[suite_number]} echo -n "$suite-" let "card_no = number % CARDS_IN_SUITE" Card=${Cards[card_no]} printf %-4s $Card # Ä«µå¸¦ Ä ´ÜÀ§·Î ±ò²ûÇÏ°Ô Ãâ·Â } seed_random () { # ¹«ÀÛÀ§ ¼ýÀÚ ¹ß»ý±â¿ë ¾¾¾Ñ seed=`eval date +%s` let "seed %= 32766" RANDOM=$seed } deal_cards () { echo cards_picked=0 while [ $cards_picked -le $UPPER_LIMIT ] do pick_a_card t=$? if [ $t -ne $DUPE_CARD ] then parse_card $t u=$cards_picked+1 # Àӽ÷Π1ºÎÅÍ À妽ÌÀ» ÇÏ´Â ÇüÅ·Π¹Ù²Þ let "u %= $CARDS_IN_SUITE" if [ $u -eq 0 ] then echo echo fi # ´Ù¸¥ »ç¶÷ let "cards_picked += 1" fi done echo return 0 } # ±¸Á¶Àû ÇÁ·Î±×·¡¹Ö: # Àüü ÇÁ·Î±×·¥ ·ÎÁ÷Àº ÇÔ¼ö·Î ¸ðµâÈ µÇ¾î ÀÖ½À´Ï´Ù. #================ seed_random initialize_Deck initialize_Suites initialize_Cards deal_cards exit 0 #================ # ¿¬½À¹®Á¦ 1: # ¿Ïº®ÇÑ ÁÖ¼®À» ´Þ¾Æ º¸¼¼¿ä. # ¿¬½À¹®Á¦ 2: # ÇÑ »ç¶÷ÀÌ ¹ÞÀº Ä«µå¸¦ Á¾·ù¼øÀ¸·Î Á¤·ÄÇØ¼ º¸¿©ÁÖµµ·Ï °íÃĺ¸¼¼¿ä. # ÇÊ¿äÇÏ´Ù¸é Æ¯º°ÇÑ ´Ù¸¥ ±â´ÉÀ» ½áµµ ±¦Âú½À´Ï´Ù. # ¿¬½À¹®Á¦ 3: # ½ºÅ©¸³Æ®¸¦ °£·«ÈÇϰí ÇÕ¸®ÀûÀÎ ·ÎÁ÷ÀÌ µÇµµ·Ï °íÃĺ¸¼¼¿ä. |