我有一个while
这种形式的循环:
while :; do
performTask1 || break
performTask2 || break
performTask3 || break
...
performTaskX || break
done
基本上,只要其中一项任务出错,我就想跳出循环。有更好的方法来实现这一目标吗?
我想另一种方法是:
while :; do
performTask1 && performTask2 ... && performTaskX || break
done
然而,这对我来说仍然很难看。
答案1
本质上,您是说如果任务失败,则后续任务不应执行。无需中断,只需使任务依赖于前面任务的成功完成即可:
while
performTask1 &&
performTask2 &&
...
performTaskX-1 &&
performTaskX
do :; done
没有必要把所有任务都放在一行...这种形式在我看来并不难看。
答案2
set -e
while :; do
performTask1
performTask2
performTask3
...
performTaskX
done
set +e
这将退出您的整个脚本如果有任何错误。
如果这不是脚本的最后一部分,您可以使用:
while performTask1 &&
performTask2 &&
performTask3 &&
... &&
performTaskX
do
:
done
另请参阅: