while 루프
Coddy Terminal 여정의 기초 섹션에 포함된 레슨. 82개 중 72번째.
for 루프는 어떤 항목을 순회할지 정확히 알고 있을 때 유용합니다. 하지만 특정 조건이 변경될 때까지 계속 반복하고 싶다면 어떻게 해야 할까요? 이럴 때 while 루프를 사용합니다.
while 루프는 조건이 참인 동안 계속 실행됩니다. 다음은 기본 구조입니다.
#!/bin/bash
count=1
while [ $count -le 5 ]; do
echo "Count: $count"
count=$((count + 1))
done이 스크립트는 1부터 5까지의 숫자를 출력합니다.
루프는 count가 5보다 작거나 같은지 확인합니다. 참이면 본문을 실행하고, 산술 연산에 $((...))을 사용하여 counter를 증가시킨 다음 다시 확인합니다.
count가 6에 도달하면 조건이 거짓이 되고 루프가 중지됩니다.
while 루프는 필요한 반복 횟수를 미리 알 수 없을 때 적합합니다. 예를 들어 사용자가 "quit"을 입력할 때까지 계속 input을 요청할 수 있습니다:
#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
read -p "Enter command (quit to exit): " input
echo "You entered: $input"
donewhile 루프를 사용할 때는 주의하세요. 조건이 false가 되지 않으면 루프가 영원히 실행됩니다.
루프 내부에서 카운터를 증가시키거나 사용자 input에 따라 변수를 업데이트하는 것처럼, 조건을 결국 변경하는 무언가가 있는지 항상 확인하세요.
챌린지
쉬움counter.sh라는 셸 스크립트를 만들고 while 루프를 사용하여 1부터 4까지의 숫자를 출력하세요.
스크립트는 다음을 수행해야 합니다.
- shebang 줄(
#!/bin/bash)로 시작합니다. - 초기값이
1인num이라는 변수를 만듭니다. num이 4보다 작거나 같은 동안 계속 실행되는 while 루프를 사용합니다.- 루프 내부에서 현재 숫자를 다음 형식으로 출력합니다:
Number: [num] - 각 반복 후
$((num + 1))을 사용하여num을 1씩 증가시킵니다.
스크립트를 실행 가능하게 만든 다음 실행하세요. 출력 결과는 다음과 같아야 합니다.
Number: 1
Number: 2
Number: 3
Number: 4힌트: "작거나 같음" 비교에는
-le를 사용하세요. 무한 루프를 방지하려면 루프 내부에서num=$((num + 1))을 사용하여 counter를 증가시키는 것을 잊지 마세요. while 루프는done으로 끝내세요.
직접 해보기
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Terminal 플레이그라운드