개발 환경 및 프로젝트 관리/Linux 개념

Bash의 for 반복문 완벽 정리

Data Jun 2025. 10. 8. 13:20

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 구문, 계산 중심이면 (( )) 구문을 쓰세요!