for 루프는 여러 파일, 레코드 또는 기타 값에 대한 작업을 반복하기 위해 Bash 스크립트를 작성할 때 편리한 도구입니다.
for 문은 값 목록을 반복하여 모든 항목이 처리될 때까지 각 값에 대해 작업을 수행합니다.
사용 사례에는 디렉토리의 파일, 텍스트 파일의 행 또는 데이터베이스 쿼리의 출력에 대한 루핑이 포함됩니다.
Bash For 루프 구문
for VARIABLE in LIST do COMMANDS done
어디에:
- VARIABLE은 COMMANDS에 의해 처리될 때 LIST의 각 항목에 할당될 변수 이름입니다.
- LIST는 여러 형식을 취할 수 있습니다. 예시는 아래 참조
Bash 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 이상에서만 지원됩니다.
- 반복할 숫자는 중괄호의 시작 부분에 있는 숫자로 시작하여 끝에 있는 숫자까지 1씩 증가합니다.
스테핑 숫자를 초과하고 3씩 증가하여 3의 배수만 처리되도록 {START…END…INCREMENT} 사용 :
for num in {0..15..3} do echo "$num is a multiple of 3!" done
참고:
- 중괄호 안의 표현식에 세 번째 숫자가 추가됩니다.
- 0에서 15까지 3씩 증가하는 숫자에 대해 작동합니다.
- 사용자 지정 증분으로 범위를 반복하는 것은 Bash 버전 4 이상에서만 지원됩니다.
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
중단
중단 문은 주어진 지점에서 루프를 종료합니다:
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!'
계속
계속 문은 루프의 현재 반복에서 코드 실행을 중지하고(전체 건너뛰기) 계속 다음 반복:
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 스크립팅 팁을 보려면 다른 기사를 확인하십시오!