我正在尝试学习 Unix 并练习循环。有人可以解释为什么在遇到continue
语句后输出被暂停吗?
之后输出暂停Count : 4
,我用Ctrl+退出C。
代码:
COUNT=0
while [ $COUNT -lt 10 ]
do
if [ $COUNT = 5 ]
then
continue
fi
echo "Count : $COUNT"
((COUNT++))
done
echo "while loop finished"
exit 0
Run Code Online (Sandbox Code Playgroud)
原因很简单:您的continue
语句指示 shell 立即跳过执行到下一个循环迭代。
不幸的是,您因此跳过了该((COUNT++))
部分,这意味着一旦COUNT
达到 5,它将永远不会再次递增,并且while
永远不会满足条件,因此从那时起您将陷入无限循环。
如果,正如@steeldriver 假设的那样,您想在 a COUNT
of处跳出循环5
,则该break
语句将是正确的选择。
一般而言,如果您有兴趣了解有关 shell 脚本的更多信息,我会推荐GreyCat&Lhunath 的 Bash 指南。此外,运行您的脚本shellcheck
(也可作为许多操作系统存储库上的独立程序)可以帮助识别语法错误等。