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