为什么“继续”在这个 while 循环实例中不起作用?

为什么“继续”在这个 while 循环实例中不起作用?

我正在尝试学习unix并练习循环。有人可以解释为什么遇到语句后输出被暂停吗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语句指示 shell 立即跳到下一个循环迭代。

不幸的是,你因此跳过了这((COUNT++))部分,这意味着一旦COUNT达到 5,它就不会再增加,并且条件while永远不会得到满足,因此从那时起你就陷入了无限循环。

COUNT如果像 @steeldriver 假设的那样,您想在 a of处跳出循环5,则该break语句将是正确的选择。

总而言之,如果您有兴趣了解有关 shell 脚本的更多信息,我建议您GreyCat&Lhunath 的 Bash 指南。另外,通过运行您的脚本shellcheck(也可以在许多操作系统存储库上作为独立程序使用)可以帮助识别语法错误等。

相关内容