Mar*_*cos 2 bash loops break while-loop
任何人都知道一种简单的方法来立即退出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
Run Code Online (Sandbox Code Playgroud)
在第一次[[...]]测试中,由于某些计算条件,我肯定希望突破while循环并且永远不会回来.
在第二个[[]]测试中,满足一个条件,该条件应该只突破循环一次,避免在它下面的进一步代码,但继续读取下一行输入并在继续时让.
正如你所看到我在done那里尝试但只有令牌意外的错误.
我宁愿不将大部分循环代码包含在if和else中,因为实际上只有很少的终止条件,只有全局和仅当前循环.