BASH는 명령줄 언어이므로 프로그래밍 기술을 활용하여 터미널에서 작업을 수행할 수 있는 매우 풍부한 기능을 경험하게 됩니다. BASH 스크립트에서 루프와 조건문을 사용하여 간단한 프로그래밍 방식으로 일부 반복적이고 까다로운 문제를 수행할 수 있습니다. 이번 글에서는 다음 사항에 중점을 두고자 합니다. for 루프 BASH 스크립트에서.
사용 사례와 자동화하려는 문제에 따라 루프를 사용하는 몇 가지 방법이 있습니다.
- 간단한 For 루프
- 범위 기반 for 루프
- 루프에 대한 배열 반복
- C 스타일 for 루프
- 무한 for 루프
간단한 For 루프
for 루프를 실행하려면 다음 구문을 작성할 수 있습니다.
#!/bin/bash for n in a b c; do echo $n done>
- 첫 번째 반복에서는
n>a 값을 취하고 스크립트는 a를 인쇄합니다. - 두 번째 반복에서는
n>b 값을 취하고 스크립트는 b를 인쇄합니다. - 세 번째 반복에서는
n>c 값을 취하고 스크립트는 c를 인쇄합니다.

위 명령은 지정된 요소에 대해 반복됩니다. ~에 키워드를 하나씩. 요소는 숫자, 문자열 또는 기타 형태의 데이터일 수 있습니다.
범위 기반 for 루프
범위 기반 for 루프를 사용할 수 있습니다. 이 유형의 루프에서는 명령문의 모든 반복(선택 사항)에서 시작, 중지 및 증가할 숫자를 지정할 수 있습니다. 이를 수행할 수 있는 두 가지 방법이 있습니다. 즉, 증가/감소 값을 언급하는 것과 기본적으로 1씩 증가하는 것입니다. 구문은 다음과 같습니다.
#!/bin/bash for n in {1..5}; do echo $n done> 
위 코드에서는 {}를 사용하여 숫자 범위를 지정합니다. 중괄호 안에 시작점과 점 두 개, 끝점을 지정합니다. 기본적으로 1씩 증가합니다. 따라서 1부터 5까지 5개의 숫자를 인쇄합니다.
#!/bin/bash for n in {1..5..2}; do echo $n done> 
여기서 우리는 중괄호에서 언급한 것처럼 루프가 2단위만큼 증가한 것을 볼 수 있습니다. 따라서 숫자 작업이 매우 쉽고 편리해집니다. 이는 알파벳 문자와 함께 사용할 수도 있습니다.
메모: 중괄호 안에는 변수를 사용할 수 없으므로 값을 하드코딩해야 합니다. 변수를 사용하기 위해 다음 몇 섹션에서 전통적인 C 스타일 for 루프를 볼 수 있습니다.
루프에 대한 배열 반복
특정 구문이 있는 for 루프를 사용하여 bash에서 편리하게 배열을 반복할 수 있습니다. BASH의 특수 변수, 즉 @를 사용하여 배열의 모든 요소에 액세스할 수 있습니다. 코드를 살펴보겠습니다:
#!/bin/bash s=('football' 'cricket' 'hockey') for n in ${s[@]}; do echo $n done> 
배열의 모든 요소를 가져오는 @ 연산자를 사용하여 배열 요소를 반복할 수 있습니다. 따라서 for 루프를 사용하여 하나씩 반복합니다. 여기서 중괄호는 문자열 배열인 변수 s의 값을 확장하는 ${variable_name[@]} 변수를 사용합니다. [@] 연산자를 사용하여 모든 요소에 액세스하고 for 루프에서 해당 요소를 반복합니다. 여기서는 N 는 반복자이므로 값을 인쇄하거나 이에 대해 필요한 처리를 수행할 수 있습니다.
C 스타일 for 루프
앞서 말했듯이, 요소 범위를 반복하려면 for 루프 내부의 변수를 사용해야 합니다. 따라서 C 스타일의 for 루프는 매우 중요한 역할을 합니다. 우리가 그것들을 어떻게 사용하는지 봅시다.
#!/bin/bash n=7 for (( i=1 ; i<=$n ; i++ )); do echo $i done>

보시다시피 끝 조건 범위의 값을 동적으로 사용할 수 있습니다. 이중 중괄호 사이의 공백은 의도적일 수 있으며 구문의 일부라는 점을 기억하세요. C 스타일의 for 루프는 초기화 반복자, 증가/감소자 및 종료 조건의 세 부분으로 구성된 루프입니다.
위 구문에서는 루프 반복자/카운터를 선택에 따라 무엇이든 될 수 있는 1로 초기화했습니다. 두 번째 부분은 종료 조건입니다. 여기서는 변수를 사용했습니다. N 이는 for 루프 이전에 초기화되므로 간단한 $ 변수의 값을 가져오는 연산자입니다. 마지막으로 반복자/카운터를 무엇이든 될 수 있는 값으로 변경하는 증감기/감소기가 있습니다. 단, 예제에서는 단항 연산자를 사용했습니다. (++) 에 해당하는 값만큼 값을 증가시키려면 나=나+1 . 따라서 우리는 다음과 같은 진술을 사용할 수 있습니다. 나는+=2, 나는–,++i, 등등.
무한 for 루프
우리는 이것을 자주 사용하지 않지만 때로는 특정 작업을 수행하는 데 유용합니다. 구문은 매우 쉽고 C 스타일 for 루프와 유사합니다.
#!/bin/bash n=4 for (( ; ; )); do if [ $n -eq 9 ];then break fi echo $n ((n=n+1)) done>
루프는 다음으로 시작됩니다.n>4로 설정합니다. 증가합니다.n>각 반복마다 1씩 씩 값을 인쇄합니다.n>~까지n>9와 같아진다.n>9에 도달하면break>명령문이 실행되고 루프가 종료됩니다. 숫자 4~8을 인쇄한 후 스크립트가 중지됩니다.

보시다시피 `for` 루프에는 조건이 없으며 이 루프는 영원히 반복되지만 영원히 계속되지 않는지 확인하는 조건문이 있습니다. 루프에서 벗어나 반복자와의 반복을 중지하기 위해 if 문 내부에 break 문을 사용합니다. 루프에서 변수를 증가시키기 위해 증분기를 사용했습니다. 그렇지 않으면 루프는 무한합니다. 물론 루프를 벗어나려면 몇 가지 논리가 필요하며 이것이 바로 if 조건문을 사용해야 하는 이유입니다.