我创建了两个shell作业,如下所示
sleep 5 &
completion_pid=$!
sleep 40 && exit 1 &
failure_pid=$!
在bash
中,我能够通过使用wait
的命令
-n
标志获得要完成的第一个作业的退出代码# capture exit code of the first subprocess to exit
wait -n $completion_pid $failure_pid
似乎这个标志在我的MacOS大苏尔的wait
版本中不可用(可能是因为我使用zsh
- ?)
▶ wait -n
wait: job not found: -n
在MacOS
上是否有其他工具可以做到这一点?
什么可能是奇怪的是,我得到同样的错误时,调用包含wait -n
的脚本作为bash myscript.sh
…
由于您正在通过指定pid等待,因此您可以简单地执行
wait $completion_pid $failure_pid