Bash Shell Script - 반복문(for, while, until loop)

By JS | Last updated: September 29, 2021

Linux의 Bash Shell script에서 아래와 같이 다양한 반복문을 사용하는 방법에 대해서 소개합니다.

  • while
  • for
  • until

1. while Loop

다음은 while loop의 syntax입니다. condition이 True이면 반복하며, False이면 반복문을 종료합니다.

while [ condition ]
do
   Statements
done

다음은 while 반복문으로 1에서 5까지 출력하는 예제입니다.

반복문의 condition [ "$a" -lt 5 ]$a < 5를 의미합니다. 그리고 $(expr $a + 1)$a에 1을 더하는 연산을 의미합니다.

#!/bin/bash

a=0
while [ "$a" -lt 5 ]
do
    a=$(expr $a + 1)
    echo $a
done

Output:

$ bash example.sh
1
2
3
4
5

2. while Loop (Infinite loop)

아래 코드에서 while 옆의 :는 True를 의미하며, 따라서 반복문은 종료되지 않고 무한히 반복합니다. Ctrl + C로 프로그램을 종료시킬 수 있습니다.

#!/bin/bash

while :
do
  echo "Please type something in (^C to quit)"
  read INPUT_STRING
  echo "You typed: $INPUT_STRING"
done
$ bash example.sh
Please type something in (^C to quit)
aaa
You typed: aaa
Please type something in (^C to quit)
bbb
You typed: bbb
Please type something in (^C to quit)
^C

3. for Loop

다음은 for 반복문의 Syntax입니다.

for loop는 in 다음에 입력된 변수들의 개수만큼 반복합니다. Loop가 반복될 때마다 var에 wordN가 할당됩니다.

for var in word1 word2 ... wordN
do
  Statements
done

아래 예제를 보시면, for loop가 어떻게 동작하는지 쉽게 이해할 수 있습니다.

#!/bin/bash

for var in 1 2 3 4 5
do
    echo $var
done

Output:

$ bash example.sh
1
2
3
4
5

그리고, in 다음에는 숫자가 아닌 문자도 가능합니다.

#!/bin/bash

for var in 1 2 a 4 HELLO
do
    echo $var
done

Output:

$ bash example.sh
1
2
a
4
HELLO

4. until Loop

다음은 until loop의 Syntax입니다. condition이 False일 때 반복하며, True이면 반복문을 종료합니다.

until은 조건이 반대라는 것을 제외하고 while과 동일합니다. 즉, until [ ! condition ]while [ condition ]과 같이 동작합니다.

until [ condition ]
do
   Statements
done

다음은 until loop로 1~5를 출력하는 예제입니다.

코드에서 [ $a -ge 5 ]$a >= 5를 의미합니다. 즉, $a가 5가 될 때까지 반복합니다.

#!/bin/bash

a=0
until [ $a -ge 5 ]
do
    a=$(expr $a + 1)
    echo $a
done

Output:

$ bash example.sh
1
2
3
4
5

References

댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha