前端之家收集整理的这篇文章主要介绍了
Bash&(&符号)运算符,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在bash shell中并行运行3个命令:
$(first command) & (second command) & (third command) & wait@H_502_2@
这样做的问题是,如果第一个命令失败,例如,退出代码为0(我猜是因为等待成功).
所需的行为是,如果其中一个命令失败,退出代码将为非零(理想情况下,其他正在运行的命令将被停止).
我怎么能实现这个目标?
请注意,我想并行运行命令!
我能想到的最好的是:
first & p1=$!
second & p2=$!
...
wait $p1 && wait $p2 && ..@H_502_2@
要么
wait $p1 || ( kill $p2 $p3 && exit 1 )
...@H_502_2@
但是,这仍然会强制执行检查流程的命令,因此,如果第三个会立即失败,则在第一个和第二个完成之前您将不会注意到它.