쉘 스크립트에서 루프까지 사용하는 방법
Bash에서 for, while 및 until은 세 가지 루프 구성입니다. 각 루프는 구문적으로나 기능적으로 다르지만 그 목적은 특정 표현식이 평가될 때 코드 블록을 반복하는 것입니다.
Until 루프는 표현식이 false로 평가될 때까지 코드 블록을 실행하는 데 사용됩니다. 이는 while 루프와 정반대입니다. while 루프는 표현식이 true인 동안 코드 블록을 실행하고 until 루프는 그 반대를 수행합니다.
until [ expression ]
do
code block
...
...
done
구문을 분석해 보겠습니다.
- 루프를 시작하려면 단일 또는 이중 중괄호 안에 표현식이 뒤따르는 Until 키워드를 사용해야 합니다.
- 코드 블록 실행을 시작할 때까지 표현식은 false로 평가되어야 합니다.
- 실제 코드 블록은 do와 done 사이에 배치됩니다.
이 짧은 기사에서는 다음 예제를 사용하여 쉘 스크립트에서 루프까지 사용하는 방법을 배웁니다.
스크립트에서 무한 루프 만들기
false 문을 표현식으로 사용하여 무한 루프를 만들 수 있습니다. 무한 루프를 시뮬레이션하려고 할 때 스크립트를 주기적으로 전달하는 sleep을 사용해 보십시오.
count=0
until false
do
echo "Counter = $count"
((count++))
sleep 2
done
한 줄 문 만들기
한 줄짜리 루프 문을 만들 수 있습니다. 아래 코드를 살펴보세요. 이는 첫 번째 무한 루프 예제와 동일하지만 한 줄에 있습니다. 여기에서는 각 문을 종료하려면 세미콜론 (;)
을 사용해야 합니다.
until false; do echo "Counter = $count"; ((count++)); sleep 2; done
break 및 continue 문으로 흐름 변경
while 루프 내에서 break 및 continue 문을 사용할 수 있습니다. break 문은 루프를 종료하고 제어를 다음 문으로 전달하는 반면 continue 문은 현재 반복을 건너뛰고 루프에서 다음 반복을 시작합니다.
동일한 무한 루프 예제를 사용하고 있습니다. 여기서 개수가 5개와 같을 때 continue 문은 루프 본문의 나머지 부분을 건너뛰고 다음 반복으로 점프합니다. 마찬가지로 개수가 10 이상이면 루프가 중단됩니다.
count=0
until false
do
((count++))
if [[ $count -eq 5 ]]
then
continue
elif [[ $count -ge 10 ]]
then
break
fi
echo "Counter = $count"
done
이것이 바로 이 기사입니다. 곧 '~까지' 또 다른 흥미로운 기사로 여러분을 찾아뵙겠습니다. 계속 읽어보시고 계속 지원해 주세요.