微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash&(&符号)运算符

我试图在bash shell中并行运行3个命令:
$(first command) & (second command) & (third command) & wait

这样做的问题是,如果第一个命令失败,例如,退出代码为0(我猜是因为等待成功).

所需的行为是,如果其中一个命令失败,退出代码将为非零(理想情况下,其他正在运行的命令将被停止).

我怎么能实现这个目标?

请注意,我想并行运行命令!

我能想到的最好的是:
first & p1=$!
second & p2=$!
...

wait $p1 && wait $p2 && ..

要么

wait $p1 || ( kill $p2 $p3 && exit 1 )
...

但是,这仍然会强制执行检查流程的命令,因此,如果第三个会立即失败,则在第一个和第二个完成之前您将不会注意到它.

原文地址:https://www.jb51.cc/bash/386998.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐