다른 스크립팅 언어와 마찬가지로 Bash도 루프를 지원합니다.
루프는 반복적인 작업을 수행하는 데 적합합니다. Bash 스크립트에서 for 루프와 while 루프를 사용할 수 있습니다.
Bash For 루프
for 루프의 구문은 다음과 같습니다.
for VARIABLE in PARAM1 PARAM2 PARAM3
do
// scope of for loop
done
for 루프는 각 매개변수에 대해 실행됩니다. 매개변수는 숫자, 숫자 또는 문자열의 범위 등이 될 수 있습니다.
Bash For 루프 예제
이 간단한 예는 for 루프를 사용하여 1에서 5까지의 숫자를 인쇄합니다.
#!/bin/bash
for i in 1 2 3 4 5
do
echo "$i"
done
출력:
1
2
3
4
5
Bash For 루프 - 숫자 범위 인쇄
반복할 숫자 범위를 정의할 수도 있습니다.
예:
for i in {1..5}
do
echo "$i"
done
출력:
1
2
3
4
5
문자열을 통한 Bash 루프
for 루프를 사용하여 문자열 매개변수를 반복할 수도 있습니다.
#!/bin/bash
for day in MON TUE WED THU FRI SAT SUN
do
echo "$day"
done
출력:
MON
TUE
WED
THU
FRI
SAT
SUN
Bash For 루프 - C 스타일
C 스타일 구문을 사용하여 for 루프를 작성할 수도 있습니다. 예:
#!/bin/bash
for ((i=1; i<=5; i++))
do
echo "$i"
done
출력
1
2
3
4
5
현재 디렉토리의 파일 목록을 인쇄하는 For 루프
bash for 루프를 사용하여 현재 디렉토리의 모든 파일을 나열하려면 다음을 사용합니다.
#!/bin/bash
for fname in ./
do
ls -l $fname
done
Bash While 루프
Bash는 while 루프도 지원합니다. while 루프는 조건이 true로 평가될 때까지 일련의 명령을 실행합니다.
Bash while 루프의 구문은 다음과 같습니다.
while [condition]
do
//execute instructions
done
조건은 명령을 실행하기 전에 평가됩니다. 따라서 조건을 업데이트하는 수단이 필요합니다. 그렇지 않으면 루프가 영원히 실행됩니다.
Bash While 루프의 예
다음은 1부터 5까지의 숫자를 출력하는 간단한 while 루프입니다. 숫자가 5보다 크면 루프가 종료됩니다.
#!/bin/bash
num=1
while [ $num -le 5 ]
do
echo "$num"
let num++
done
Bash C 스타일 While 루프
for 루프와 마찬가지로 언어와 같은 C 스타일로 bash while 루프를 작성할 수도 있습니다.
예:
#!/bin/bash
num=1
while((num <= 5))
do
echo $num
let num++
done