Bash 스크립트에서 반복문은 여러 작업을 자동화할 때 핵심적인 역할을 합니다.
그중에서도 가장 자주 쓰이는 것이 바로 for 문이에요.
이번 글에서는 for의 3가지 형태 — 기본형, range형, C-style형 — 을 예시와 함께 정리해볼게요.
기본 형태 (list 방식)
가장 전통적이고 단순한 방식입니다.
미리 지정한 값들의 리스트를 차례로 순회하며 반복합니다.
for animal in dog cat pig
do
echo "animal: $animal"
done
실행 결과
animal: dog
animal: cat
animal: pig
해설
- for 다음에 나오는 변수(animal)는 **루프 변수(loop variable)**입니다.
- in 뒤에 나열된 값들을 순서대로 하나씩 가져와서 $animal에 저장합니다.
- 각 순회마다 do ~ done 사이의 명령이 실행됩니다.
Tip:
리스트는 직접 지정할 수도 있고, $(ls) 같은 명령어의 결과로도 받을 수 있습니다.
for file in $(ls)
do
echo "파일 이름: $file"
done
range 형태 (시퀀스 방식)
{시작..끝} 구문을 사용하면 숫자 범위를 간단히 반복할 수 있습니다.
for i in {0..3}
do
echo "Number: $i"
done
실행 결과
Number: 0
Number: 1
Number: 2
Number: 3
해설
- {0..3}은 0부터 3까지 정수를 자동으로 생성합니다.
- 즉, 0 1 2 3과 같은 리스트로 확장되어 반복됩니다.
- 역순 반복도 가능합니다 👇
for i in {5..1}
do
echo $i
done
출력: 5 4 3 2 1
step(간격) 지정도 가능
for i in {0..10..2}
do
echo $i
done
결과: 0 2 4 6 8 10
C-style 형태 (산술형)
C언어의 for문과 거의 동일한 문법입니다.
변수 초기화, 조건식, 증감식을 명시적으로 지정할 수 있어 정수 루프에 최적화되어 있습니다.
for ((i = 0; i <=10; i++))
do
echo "index: $i"
done
실행 결과
index: 0
index: 1
...
index: 10
해설
- 괄호 (( )) 안에서는 수식 계산이 가능하며,
$ 없이 바로 변수 이름을 사용할 수 있습니다. - (( )) 안에서는 ==, >, <, ++, -- 등 C 스타일 연산자가 모두 지원됩니다.
- 조건식이 false가 되면 루프 종료됩니다.
세 가지 형태 비교
| 형태 | 예시 | 특징 | 활용 예 |
| 기본형 | for x in a b c | 문자열 리스트 반복 | 파일 이름, 단어 목록 |
| range형 | for i in {0..5} | 정수 범위 반복 | 숫자 카운트 |
| C-style형 | for ((i=0; i<5; i++)) | 수식 기반 반복 | 인덱스 제어, 계산 루 |
참고 — for문에서의 break / continue
- break: 반복문을 즉시 종료
- continue: 다음 반복으로 건너뛰기
for i in {1..5}
do
if [ $i -eq 3 ]; then
continue # 3일 때는 건너뜀
fi
if [ $i -eq 5 ]; then
break # 5일 때 루프 종료
fi
echo "i = $i"
done
출력 결과 👇
i = 1
i = 2
i = 4
정리하면
bash에서 for 문은 리스트를 순회하거나 범위를 반복할 때 가장 강력한 구조입니다.
반복 대상이 명확하면 in 구문, 계산 중심이면 (( )) 구문을 쓰세요!
'개발 환경 및 프로젝트 관리 > Linux 개념' 카테고리의 다른 글
| Bash에서의 함수 선언과 사용 (0) | 2025.10.09 |
|---|---|
| Bash 반복문 — while과 until의 차이 (0) | 2025.10.08 |
| Bash의 Logical AND / OR (논리 연산자) (0) | 2025.10.08 |
| Bash에서 파일 테스트 연산자 (File Test Operators) (0) | 2025.10.08 |
| Bash에서 문자열 비교 (String Comparison) (0) | 2025.10.08 |