bash while Break 跳出循环而不是循环?

标签 bash loops while-loop break

有人知道一种简单的方法可以立即退出 bash 中 while/until 循环的当前迭代,但继续循环中的下一个迭代吗?

我的基本结构是:

sort -u -r -g -k 5 -t ' ' $filteredtoptrigsf |\
while read -a linA; do

 stuff
 morestuff

 [[ $smthStinks -eq 1 ]] && break

 [[ ${linA[*]} == $onlyThisLineStinks ]]  &&  done

 lotsaSlowProcessing

 doSmthDangerous

done

在第一个 [[ ... ]] 测试中,由于一些计算条件,我绝对希望跳出 while 循环并且永远不会回来。

在第二个 [[ ]] 测试中,满足一个条件,该条件只能跳出循环一次,避免在其下面进一步编写代码,但继续读取下一行输入并让 while 继续。

正如你所看到的,我在那里尝试了done,但只有 token 意外的错误。

我不想将大部分循环代码包装在 if 和 else 中,因为实际上有相当多的终止条件,无论是全局的还是仅针对当前循环。

最佳答案

尝试继续而不是完成。这将带您进入循环的下一次迭代。

关于bash while Break 跳出循环而不是循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8933048/

相关文章:

python - 使用Python的while循环中的if/elif/else语句

Bash 脚本错误 [: ! =: 应为一元运算符

ZSH 和 Oh-My-Zsh 本地环境映射?

bash - 如何在 shell 中等待文件创建并监听其内容直到超时

ruby - 使用Ruby通过SSH发送脚本

javascript - 在 javascript 中,如何使用 fs.writeFile 并循环数组并在新文本文件中垂直完全打印数组中的每个项目

sql - 如何遍历PLSQL Select的结果

java - 按索引比较 List<Integer>

php - 如何优化 php 中嵌套循环的 mysql 查询

c - 虽然循环没有按预期工作以将各种情况作为终端的输入)