我正在尝试学习 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 COUNTof处跳出循环5,则该break语句将是正确的选择。
一般而言,如果您有兴趣了解有关 shell 脚本的更多信息,我会推荐GreyCat&Lhunath 的 Bash 指南。此外,运行您的脚本shellcheck(也可作为许多操作系统存储库上的独立程序)可以帮助识别语法错误等。
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |