쉘 스크립트에서 Bash For 루프를 사용하는 방법 알아보기
프로그래밍 언어에서 루프는 필수 구성 요소이며 지정된 조건이 충족될 때까지 코드를 반복해서 반복하려는 경우에 사용됩니다.
Bash 스크립팅에서 루프는 거의 동일한 역할을 하며 프로그래밍 언어와 마찬가지로 반복 작업을 자동화하는 데 사용됩니다.
Bash 스크립팅에는 for 루프, while 루프 및 until 루프의 세 가지 유형의 루프가 있습니다. 세 개는 값 목록을 반복하고 주어진 명령 세트를 수행하는 데 사용됩니다.
이 가이드에서는 Linux의 Bash For Loop에 중점을 둘 것입니다.
앞에서 언급했듯이 for 루프는 값 범위를 반복하고 일련의 명령을 실행합니다.
For 루프는 다음 구문을 사용합니다.
for variable_name in value1 value2 value3 .. n do command1 command2 commandn done
이제 bash for 루프의 몇 가지 사용 예를 확인하겠습니다.
Bash 단순 For 루프
가장 간단한 형태의 For 루프는 다음과 같은 기본 형식을 취합니다. 이 예에서 변수 n
은 중괄호로 묶인 숫자 값 그룹을 반복하고 해당 값을 stdout에 출력합니다.
for n in {1 2 3 4 5 6 7}; do echo $n done

범위가 있는 Bash For 루프
이전 예제에서는 잘 작동하는 for 루프에서 반복할 값을 명시적으로 나열했습니다. 그러나 예를 들어 100개의 값을 반복하는 경우 얼마나 번거롭고 시간이 많이 걸리는 작업인지 상상할 수 있습니다. 이렇게 하면 1에서 100까지의 모든 값을 입력해야 합니다.
이 문제를 해결하려면 범위를 지정하십시오. 이렇게 하려면 시작 및 중지할 번호를 마침표 두 개로 구분하여 지정합니다.
이 예에서 1은 첫 번째 값이고 7은 범위의 마지막 값입니다.
#!/bin/bash for n in {1..7}; do echo $n done
쉘 스크립트가 실행되면 범위의 모든 값이 나열되며 간단한 루프에서 있었던 것과 유사합니다.

또한 for 루프가 증분 단계에서 값을 반복하도록 하는 범위의 끝에 값을 포함할 수 있습니다.
다음 bash 스크립트는 첫 번째 값부터 시작하여 값 사이에 2 증분 단계를 사용하여 1에서 7 사이의 값을 인쇄합니다.
#!/bin/bash for n in {1..7..2}; do echo $n done

위의 예에서 루프가 중괄호 안의 값을 2만큼 증가시킨 것을 볼 수 있습니다.
배열이 있는 Bash For 루프
For 루프를 사용하여 배열에 정의된 값을 통해 쉽게 반복할 수도 있습니다. 다음 예제에서 for 루프는 fruits 배열 내부의 모든 값을 반복하고 stdout에 인쇄합니다.
#!/bin/bash fruits=("blueberry" "peach" "mango" "pineapple" "papaya") for n in ${fruits[@]}; do echo $n done

@
연산자는 모든 요소에 액세스하거나 대상을 지정합니다. 이렇게 하면 모든 요소를 하나씩 반복할 수 있습니다.
또한 배열 내의 위치를 지정하여 단일 요소에 액세스할 수 있습니다.
예를 들어 mango 요소에 액세스하려면 @
연산자를 배열의 요소 위치로 바꿉니다(첫 번째 요소는 0에서 시작하므로 이 경우 mango는 2).
이것이 for 루프의 모습입니다.
#!/bin/bash fruits=("blueberry" "peach" "mango" "pineapple" "papaya") for n in ${fruits[2]}; do echo $n done

Bash C 스타일 For 루프
루프 내부의 변수를 사용하여 요소 범위를 반복할 수 있습니다. 이것은 C 스타일의 for 루프가 들어오는 곳입니다. 다음 예제는 1에서 7까지의 숫자 값 목록을 출력하는 C 스타일의 for 루프를 보여줍니다.
#!/bin/bash n=7 for (( n=1 ; n<=$n ; n++ )); do echo $n done

조건문이 있는 Bash C 스타일의 For 루프
C 스타일 for 루프 내에 조건문을 포함할 수 있습니다. 다음 예제에서는 1과 7 사이의 짝수와 홀수를 확인하고 출력하는 if-else 문을 포함했습니다.
#!/bin/bash for (( n=1; n<=7; n++ )) do # Check if the number is even or not if (( $n%2==0 )) then echo "$n is even" else echo "$n is odd" fi done

Bash For Loop에서 '계속' 문 사용
'계속' 문은 스크립트 실행 방법을 제어하는 기본 제공 명령입니다. bash 스크립팅 외에도 Python 및 Java와 같은 프로그래밍 언어에서도 사용됩니다.
continue 문은 특정 조건이 충족되면 루프 내부의 현재 반복을 중지한 다음 반복을 다시 시작합니다.
아래 표시된 for 루프를 고려하십시오.
#!/bin/bash for n in {1..10} do if [[ $n -eq '6' ]] then echo "Target $n has been reached" continue fi echo $n done

이것이 코드가 하는 일입니다.
- 2행: for 루프의 시작을 표시하고 변수 n을 1에서 10까지 반복합니다.
- 라인 4: n의 값을 확인하고 변수가 6이면 스크립트는 메시지를 stdout에 에코하고 라인 2의 다음 반복에서 루프를 다시 시작합니다.
- 9행: 4행의 조건이 거짓인 경우에만 화면에 값을 출력합니다.
다음은 스크립트를 실행한 후 예상되는 출력입니다.

Bash For Loop에서 'break' 문 사용
'break' 문은 이름에서 알 수 있듯이 조건이 충족되면 반복을 중지하거나 종료합니다.
아래의 For 루프를 고려하십시오.
#!/bin/bash for n in {1..10} do if [[ $n -eq '6' ]] then echo "Target $n has been reached" break fi echo $n done echo "All done"

이것이 코드가 하는 일입니다.
- 2행: for 루프의 시작을 표시하고 변수 n을 1에서 10까지 반복합니다.
- 4행: n의 값을 확인하고 변수가 6이면 스크립트는 메시지를 stdout에 에코하고 반복을 중지합니다.
- 9행: 4행의 조건이 거짓인 경우에만 화면에 숫자를 출력합니다.
출력에서 변수가 루프의 조건을 충족하면 루프가 중지되는 것을 볼 수 있습니다.

Bash For 루프에 대한 튜토리얼이었습니다. 이 정보가 도움이 되었기를 바랍니다. 귀하의 의견에 자유롭게 참여하십시오.