°í±Þ Bash ½ºÅ©¸³ÆÃ °¡À̵å: Bash¸¦ ÀÌ¿ëÇÑ ½© ½ºÅ©¸³ÆÃ ¿ÏÀü °¡À̵å | ||
---|---|---|
ÀÌÀü | 10Àå. ·çÇÁ¿Í ºÐ±â(Loops and Branches) | ´ÙÀ½ |
·çÇÁÀÇ µ¿ÀÛ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â ¸í·É¾îµé
break¿Í continue ·çÇÁ Á¦¾î ¸í·É¾î [1] ´Â ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾îµé°ú Á¤È®È÷ °°Àº µ¿ÀÛÀ» ÇÕ´Ï´Ù. break ¸í·É¾î´Â ÀÚ½ÅÀÌ ¼ÓÇØ ÀÖ´Â ·çÇÁ¸¦ ³¡³»°í, continue´Â ÇØ´ç ·çÇÁ »çÀÌŬ ³»¿¡ ³²¾Æ ÀÖ´Â ³ª¸ÓÁö ¸í·É¾îµéÀ» °Ç³Ê ¶Ù°í ´ÙÀ½ ´Ü°èÀÇ ·çÇÁ¸¦ ¼öÇàÇÕ´Ï´Ù.
¿¹ 10-19. ·çÇÁ¿¡¼ break¿Í continueÀÇ ¿µÇâ
#!/bin/bash LIMIT=19 # »óÇѼ± echo echo "3,11À» Á¦¿ÜÇϰí 1ºÎÅÍ 20±îÁö Ãâ·Â." a=0 while [ $a -le "$LIMIT" ] do a=$(($a+1)) if [ "$a" -eq 3 ] || [ "$a" -eq 11 ] # 3,11À» Á¦¿Ü then continue # À̹ø ·çÇÁÀÇ ³ª¸ÓÁö ºÎºÐÀ» °Ç³Ê¶Ü. fi echo -n "$a " done # µ¶ÀÚµéÀ» À§ÇÑ ¿¬½À¹®Á¦: # ·çÇÁ°¡ ¿Ö 20±îÁö ÂïÀ»±î¿ä? echo; echo echo 1ºÎÅÍ 20±îÁö ÂïÁö¸¸ 2´ÙÀ½¿¡ ¹«½¼ ÀÏÀΰ¡°¡ ÀϾ´Ï´Ù. ################################################################## # ¶È°°Àº ·çÇÁÁö¸¸ 'continue'¸¦ 'break'·Î ¹Ù²å½À´Ï´Ù. a=0 while [ "$a" -le "$LIMIT" ] do a=$(($a+1)) if [ "$a" -gt 2 ] then break # ·çÇÁ ³ª¸ÓÁö¸¦ ¸ðµÎ °Ç³Ê¶Ü. fi echo -n "$a " done echo; echo; echo exit 0 |
break ¸í·É¾î´Â ¸Å°³º¯¼ö¸¦ ¹ÞÀ» ¼öµµ ÀÖ½À´Ï´Ù. ¸Å°³º¯¼ö ¾ø´Â break´Â ÀÚ½ÅÀÌ ¼ÓÇØ ÀÖ´Â Á¦ÀÏ ¾ÈÂÊ ·çÇÁ¸¦ ³¡³»Áö¸¸, break NÀº N ·¹º§ÀÇ ·çÇÁ¸¦ ºüÁ®³ª°©´Ï´Ù.
¿¹ 10-20. ¿©·¯ ´Ü°èÀÇ ·çÇÁ¿¡¼ Å»ÃâÇϱâ
#!/bin/bash # break-levels.sh: ·çÇÁ¿¡¼ Å»ÃâÇϱâ. # "break N" Àº N ·¹º§ÀÇ ·çÇÁ¸¦ ºüÁ®³ª°©´Ï´Ù. for outerloop in 1 2 3 4 5 do echo -n "$outerloop ±×·ì: " for innerloop in 1 2 3 4 5 do echo -n "$innerloop " if [ "$innerloop" -eq 3 ] then break # break 2 ¶ó°í ÇÏ¸é ¾î¶»°Ô µÉ±î¿ä? # (¾ÈÂʰú ¹Ù±ùÂÊ ·çÇÁ ¸ðµÎ¿¡¼ "Å»Ãâ"(break)ÇÕ´Ï´Ù.) fi done echo done echo exit 0 |
continue ¸í·É¾îµµ break¿Í ºñ½ÁÇÏ°Ô ¸Å°³º¯¼ö¸¦ ¹Þ¾Æ µéÀϼö ÀÖ½À´Ï´Ù. ¸Å°³º¯¼ö ¾ø´Â continue´Â ÀÚ½ÅÀÌ ¼ÓÇÑ ·çÇÁÀÇ ÇöÀç ÀÛ¾÷À» ³¡³»°í ´ÙÀ½¹øÀ¸·Î °Ç³Ê ¶ÙÁö¸¸ continue NÀº ÀÚ½ÅÀÌ ¼ÓÇÑ ·çÇÁ ·¹º§ÀÇ ¸ðµç ´Ü°è¸¦ °Ç³Ê ¶Ù°í N ·¹º§ À§¿¡ ¼ÓÇÏ´Â ·çÇÁÀÇ ´ÙÀ½ ´Ü°è·Î °Ç³Ê ¶Ý´Ï´Ù.
¿¹ 10-21. ´õ »óÀ§ ·çÇÁ ·¹º§¿¡¼ °è¼ÓÇϱâ(continue)
#!/bin/bash # "continue N" ¸í·É¾î, N ¹øÂ° ·çÇÁ¿¡¼ °è¼ÓÇϱâ(continue). for outer in I II III IV V # ¹Ù±ùÂÊ ·çÇÁ do echo; echo -n "Group $outer: " for inner in 1 2 3 4 5 6 7 8 9 10 # ¾ÈÂÊ ·çÇÁ do if [ "$inner" -eq 7 ] then continue 2 # "¹Ù±ùÂÊ ·çÇÁ"ÀÎ 2¹øÂ° ·¹º§ÀÇ ·çÇÁ¿¡¼ °è¼Ó ÁøÇàÇÕ´Ï´Ù. # ÀÁÙÀ» ±×³É "continue"¶ó°í ÇÏ¸é º¸ÅëÀÇ ·çÇÁ µ¿ÀÛÀÌ ÀϾ´Ï´Ù. fi echo -n "$inner " # 8 9 10 Àº Àý´ë ¿¡ÄÚµÇÁö ¾Ê½À´Ï´Ù. done done echo; echo # µ¶ÀÚµéÀ» À§ÇÑ ¿¬½À¹®Á¦: # "continue N"À» ¾²´Â ¾µ¸ðÀÖ´Â ½ºÅ©¸³Æ®¸¦ Â¥ º¸¼¼¿ä. exit 0 |
°æ°í |
continue NÀº ¾Æ¹«¸® ÀÇ¹Ì ÀÖ´Â »óȲ¿¡¼ ½è´õ¶óµµ ÀÌÇØÇÏ±â ¾î·Æ°í ¾²±â ±î´Ù·Ó±â ¶§¹®¿¡ ¾È ¾²´Â°Ô Á¦ÀÏ ÁÁ½À´Ï´Ù. |
[1] | while³ª case°¡ Ű¿öµåÀÎ ¹Ý¸é¿¡ break³ª continue´Â ½© ³»Àå¸í·ÉÀÔ´Ï´Ù. |