Linux의 Bash Shell script에서 아래와 같이 다양한 반복문을 사용하는 방법에 대해서 소개합니다.
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를 의미하며, 따라서 반복문은 종료되지 않고 반복적으로 read로 사용자 입력을 받습니다.
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
Related Posts
- Bash Shell - 문자열에서 마지막 문자 N개 제거
- Bash Shell - 문자열에서 첫번째 문자 N개 제거
- Bash Shell - 실행 시간 측정 방법
- Bash Shell - 나눗셈에서 버림, 올림, 반올림 처리
- Bash Shell - 숫자가 양수인지 음수인지 확인하는 방법
- Bash Shell - 자신의 스크립트 파일 이름 가져오기
- Bash Shell - 문자열 출력 방법(echo, printf)
- Bash Shell - seq 명령어로 반복문 구현 및 예제
- Bash Shell - File 테스트 연산자
- Bash Shell - 무한 루프 (Infinite loop)
- Bash Shell - 숫자 비교 연산자
- Bash Shell - 문자열 비교 연산자
- Bash Shell - 대문자, 소문자로 변환 (Uppercase, Lowercase)
- Bash Shell - 스트립트를 root로 실행했는지 확인
- Bash Shell - 명령어 실행 결과를 변수에 저장
- Bash Shell - select로 선택 메뉴 구현
- Bash Shell - 변수가 정의되었는지 확인하는 방법
- Bash Shell - sleep 함수, 특정 시간 멈추기
- Bash Shell - 파일이 존재하는지 확인
- Bash Shell - 문자열 자르기 (substring, split)
- Bash Shell - 날짜, 시간 가져오기
- Bash Shell - Case 조건문
- Bash Shell - 파일 읽는 방법
- Bash Shell - 사용자로부터 입력 받기
- Bash Shell - 문자열을 연결하는 방법
- Bash Shell - 파일 생성 및 문자열 추가
- Bash Shell - 숫자 변수 증가/감소 시키기
- Bash Shell - 배열 할당, 길이, 객체 포함 여부 확인
- Bash Shell - 문자열 비교, 문자열 포함 여부 확인
- Bash Shell - 변수 선언, 할당
- Bash Shell - 조건문(if-else)
- Bash Shell - 숫자 연산 (더하기, 빼기, 곱하기, 나누기)
- Bash Shell - 반복문(for, while, until loop)
- Bash Shell - Command Line으로 전달된 인자 받기
- Bash Shell - 함수(Function)