logo

Bash For 루프

이번 주제에서는 for 루프 Bash 스크립트에서.

다른 프로그래밍 언어와 마찬가지로 bash 쉘 스크립팅은 반복 작업을 수행하기 위해 'for 루프'도 지원합니다. 이는 문자열의 일련의 단어나 배열의 요소에 대해 특정 명령문 세트를 반복하는 데 도움이 됩니다. 예를 들어, UNIX 명령(또는 작업)을 여러 번 실행하거나 'for 루프'를 사용하여 명령 목록을 읽고 처리할 수 있습니다.

For 루프의 구문

두 가지 방법으로 bash 스크립트에 'for 루프'를 적용할 수 있습니다. 한 가지 방법은 'for-in'이고 다른 방법은 C 스타일 구문입니다. 다음은 Bash 쉘 스크립팅의 'for 루프' 구문입니다.

 for variable in list do commands done 

또는

 for (( expression1; expression2; expression3 )) do commands done 

'for 루프' 문의 몇 가지 핵심 사항이 있습니다.

  • Bash에서 'for 루프'의 각 블록은 'do' 키워드로 시작하고 그 뒤에 블록 내부의 명령이 옵니다. 'for 루프' 문은 'done' 키워드로 닫힙니다.
  • 'for 루프'가 반복되는 시간은 선언된 목록 변수에 따라 다릅니다.
  • 루프는 목록에서 하나의 항목을 선택하고 루프 내에서 사용될 변수에 값을 할당합니다.
  • 'do'와 'done' 사이의 명령을 실행한 후 루프는 맨 위로 돌아가 목록에서 다음 항목을 선택하고 전체 프로세스를 반복합니다.
  • 목록에는 공백으로 구분된 숫자나 문자열 등이 포함될 수 있습니다.

작동 방식을 설명하기 위해 'for 루프' 예제 중 일부가 아래에 제공됩니다.

기본 'For 루프' 예제

배시 스크립트

 #!/bin/bash #This is the basic example of 'for loop'. learn='Start learning from Javatpoint.' for learn in $learn do echo $learn done echo 'Thank You.' 

산출

Bash For 루프

범위를 읽는 For 루프

배시 스크립트

 #!/bin/bash #This is the basic example to print a series of numbers from 1 to 10. for num in {1..10} do echo $num done echo 'Series of numbers from 1 to 10.' 

산출

Bash For 루프

증가/감소로 범위를 읽는 For 루프

두 개의 다른 점(..)과 단계별 값을 추가하여 지정된 값을 늘리거나 줄일 수 있습니다(예: {START..END..INCREMENT}). 아래 예를 확인하세요.

증분용

 #!/bin/bash #For Loop to Read a Range with Increment for num in {1..10..1} do echo $num done 

산출

Bash For 루프

감소용

 #!/bin/bash #For Loop to Read a Range with Decrement for num in {10..0..1} do echo $num done 

산출

Bash For 루프

배열 변수를 읽는 For 루프

배열의 값을 반복하기 위해 'for 루프'를 사용할 수 있습니다.

자바에서 배열 정렬

구문은 다음과 같이 정의할 수 있습니다.

 array=( 'element1' 'element 2' . . 'elementN' ) for i in '${arr[@]}' do echo $i done 

산출

'배열'의 각 요소에 대해 'do'부터 'done'까지의 명령문 또는 명령 세트가 실행됩니다. 각 요소는 해당 반복에 대한 루프 내에서 'i'로 액세스할 수 있습니다. 배열의 요소를 반복하기 위해 'for 루프'를 사용하는 방법을 설명하는 아래 예제를 확인하세요.

배시 스크립트

 #!/bin/bash #Array Declaration arr=( 'Welcome''to''Javatpoint' ) for i in '${arr[@]}' do echo $i done 

산출

Bash For 루프

For 루프는 문자열의 공백을 단어 구분 기호로 읽습니다.

구문은 아래와 같이 정의할 수 있습니다.

 #!/bin/bash for word in $str; do done 

여기, str 문자열을 참조합니다.

'do'부터 'done'까지의 명령문은 문자열의 각 '단어'에 대해 실행됩니다. 아래 예를 확인하세요.

배시 스크립트

 #!/bin/bash #For Loop to Read white spaces in String as word separators str='Let's start learning from Javatpoint.' for i in $str; do echo '$i' done 

산출

Bash For 루프

For 루프는 문자열의 각 줄을 단어로 읽습니다.

구문은 아래와 같이 정의할 수 있습니다.

 #!/bin/bash for word in '$str'; do done 

여기서는 'do'부터 'done'까지의 명령문이 문자열의 각 '라인'에 대해 실행됩니다. 아래 예를 확인하세요.

배시 스크립트

 #!/bin/bash #For Loop to Read each line in String as a word str='Let's start learning from Javatpoint.' for i in '$str'; do echo '$i' done 

산출

Bash For 루프

참고: '문자열의 공백을 단어 구분 기호로 읽는 For 루프'와 '문자열의 각 줄을 단어로 읽는 For 루프' 사이의 유일한 차이점은 문자열 변수를 큰따옴표로 묶는 것입니다.

세 가지 표현식을 읽는 For 루프

세 가지 표현식 구문은 'for 루프'의 가장 일반적인 구문입니다. 첫 번째 표현은 초기화 과정을 나타내고, 두 번째 표현은 종료를 나타내며, 세 번째 표현은 증가 또는 감소를 나타냅니다.

for 루프가 포함된 세 가지 표현식을 사용하여 1~10개의 숫자를 인쇄하려면 아래 예를 확인하세요.

배시 스크립트

자바 숫자를 문자열로
 #!/bin/bash #For Loop to Read Three-expression for ((i=1; i<=10; i++)) do echo '$i' done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-8.webp" alt="Bash For Loop"> <h3>For Loop with a Break Statement</h3> <p>A &apos;break&apos; statement can be used inside &apos;for&apos; loop to terminate from the loop.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Table of 2 for table in {2..100..2} do echo $table if [ $table == 20 ]; then break fi done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-9.webp" alt="Bash For Loop"> <h3>For Loop with a Continue Statement</h3> <p>We can use the &apos;continue&apos; statement inside the &apos;for&apos; loop to skip any specific statement on a particular condition. It tells Bash to stop executing that particular iteration of the loop and process the next iteration.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;></pre></=10;>

산출

Bash For 루프

Continue 문이 있는 For 루프

'for' 루프 내에서 'continue' 문을 사용하여 특정 조건에 대한 특정 문을 건너뛸 수 있습니다. 이는 Bash에게 루프의 특정 반복 실행을 중지하고 다음 반복을 처리하도록 지시합니다.

배시 스크립트

 #!/bin/bash #Numbers from 1 to 20, ignoring from 6 to 15 using continue statement&apos; for ((i=1; i<=20; 5 16 i++)); do if [[ $i -gt && -lt ]]; then continue fi echo done < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-10.webp" alt="Bash For Loop"> <h3>Infinite Bash For Loop</h3> <p>When there is no &apos;start, condition, and increment&apos; in the bash three expressions for loop, it becomes an infinite loop. To terminate the infinite loop in Bash, we can press Ctrl+C.</p> <p> <strong>Bash Script</strong> </p> <pre> #!/bin/bash i=1; for (( ; ; )) do sleep 1s echo &apos;Current Number: $((i++))&apos; done </pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/bash-tutorial/09/bash-loop-11.webp" alt="Bash For Loop"> <h2>Conclusion</h2> <p>In this topic, we discussed how to use for loop statement in Bash to perform specific tasks</p> <hr></=20;>

산출

Bash For 루프

결론

이 주제에서는 Bash에서 for 루프 문을 사용하여 특정 작업을 수행하는 방법에 대해 논의했습니다.