유닉스를 배우고 루핑을 연습하려고 합니다. 명령문이 발생한 후 출력이 일시 중지되는 이유를 누군가 설명할 수 있습니까 continue
?
그 후 출력이 일시 중지되고 Count : 4
+로 종료됩니다.CtrlC
암호:
COUNT=0
while [ $COUNT -lt 10 ]
do
if [ $COUNT = 5 ]
then
continue
fi
echo "Count : $COUNT"
((COUNT++))
done
echo "while loop finished"
exit 0
답변1
그 이유는 매우 간단합니다. 귀하의 continue
명령문은 쉘이 다음 루프 반복으로 즉시 점프하도록 지시합니다.
안타깝게도 이 ((COUNT++))
부분을 건너뛰게 됩니다. 즉, COUNT
5에 도달하면 절대 증가하지 않고 조건이 while
충족되지 않으므로 해당 지점부터 무한 루프에 빠지게 됩니다.
COUNT
@steeldriver가 가정하는 것처럼 of 에서 루프를 중단하려는 경우 5
이 break
문이 올바른 선택이 될 것입니다.
전체적으로 쉘 스크립트에 대해 더 자세히 배우고 싶다면 다음을 추천합니다.GreyCat&Lhunath의 배쉬 가이드. 또는 스크립트를 실행하여shellcheck
(많은 운영 체제 저장소에서 독립 실행형 프로그램으로도 사용 가능)은 구문 오류 등을 식별하는 데 도움이 될 수 있습니다.