Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

Bash for 루프 완벽 가이드 – 예제로 배우는 반복문 사용법

Bash 스크립트를 작성할 때 for 루프는 여러 파일, 레코드 또는 다른 값들에 대해 동일한 작업을 반복 수행할 수 있게 해주는 매우 유용한 도구입니다.

for 문은 값 목록을 순회하면서 각 항목에 대해 작업을 수행하고, 모든 항목이 처리될 때까지 이 과정을 반복합니다.

대표적인 활용 사례로는 디렉터리 내 파일 순회, 텍스트 파일의 줄 단위 처리, 데이터베이스 쿼리 결과 처리 등이 있습니다.

Bash for 루프 기본 문법

for VARIABLE in LIST
do
    COMMANDS
done

각 요소의 의미는 다음과 같습니다.

  • VARIABLE: LIST의 각 항목이 COMMANDS에서 처리될 때 해당 항목이 할당되는 변수 이름입니다.
  • LIST: 다양한 형태를 가질 수 있으며, 자세한 내용은 아래 예제를 참고하세요.

Bash for 루프 예제

for 루프는 미리 정의된 목록뿐만 아니라 다른 스크립트나 명령줄 애플리케이션의 출력 결과로 생성된 목록도 순회할 수 있습니다.

for 루프로 숫자 범위 순회하기

{START..END} 구문을 사용하면 범위 내의 각 숫자를 1씩 증가시키며 처리할 수 있습니다.

for num in {0..10}
do 
    echo "I'm counting to 10 and I'm up to $num"
done

참고 사항입니다.

  • 목록의 각 항목은 변수 num에 할당됩니다.
    • 이후 스크립트에서 $num 형태로 접근할 수 있습니다.
    • 숫자 범위 순회는 Bash 버전 3.0 이상에서만 지원됩니다.
  • 중괄호 안의 시작 숫자부터 끝 숫자까지 1씩 증가하며 순회합니다.

{START..END..INCREMENT} 구문을 사용하면 증분(step)을 지정할 수 있습니다. 아래 예제는 3씩 증가시켜 3의 배수만 처리합니다.

for num in {0..15..3}
do 
    echo "$num is a multiple of 3!"
done

참고 사항입니다.

  • 중괄호 안의 표현식에 세 번째 숫자(증분)가 추가됩니다.
    • 0부터 15까지의 숫자를 3씩 증가시키며 처리합니다.
  • 사용자 지정 증분을 사용한 범위 순회는 Bash 버전 4.0 이상에서만 지원됩니다.

for 루프로 문자열 목록 순회하기

문자열 값으로 이루어진 목록도 순회할 수 있습니다.

for car in Ford Holden Honda BMW Ferrari
do
    echo "I wish I could drive a $car"
done

for 루프로 배열 순회하기

배열을 변수로 선언한 후, 그 안의 값들을 순회할 수 있습니다.

FRUITS=('Apple' 'Pear' 'Orange' 'Strawberry')

for fruit in "${FRUITS[@]}"
do
    echo "$fruit is delicious"
done

for 루프로 파일 및 명령어 출력 결과 순회하기

다른 명령줄 명령의 출력 결과도 루프로 처리할 수 있습니다.

for f in *
do
    echo "Filename is $f"
done

break – 루프 중단하기

break 문은 지정한 지점에서 루프를 즉시 종료합니다.

for num in {0..15..3}
do
    echo "$num is a multiple of 3!"
    if [[ "$num" == '9' ]]
    then
        break
    fi
done
echo 'Finished counting at 9!'

continue – 현재 반복 건너뛰기

continue 문은 현재 반복에서 코드 실행을 중단하고 해당 반복을 건너뛴 뒤, 다음 반복으로 넘어갑니다.

for num in {0..15..3}
do
    if [[ "$num" == '6' ]]
    then
        continue
    fi
    echo "$num is a multiple of 3!"
done
echo 'The number 6 was skipped!'

마무리

스크립트 작성 시 루프를 활용하면 시간을 크게 절약할 수 있으며, 수작업 없이 파일과 데이터 처리를 자동화하는 유연한 스크립트를 작성할 수 있습니다.

더 많은 Bash 스크립팅 팁이 궁금하다면 저희의 다른 글들도 확인해 보세요!