在 zsh 中模拟 wait 的命令 -n 标志

pka*_*mol 5 zsh wait

我正在创建两个 shell 作业,如下所示

\n
sleep 5 &\ncompletion_pid=$!\n\nsleep 40 && exit 1 &\nfailure_pid=$! \n
Run Code Online (Sandbox Code Playgroud)\n

我可以使用's 命令的标志bash来获取第一个作业完成的退出代码-nwait

\n
# capture exit code of the first subprocess to exit\nwait -n $completion_pid $failure_pid\n
Run Code Online (Sandbox Code Playgroud)\n

然而,这个标志在我的 MacOS Big Sur 版本中似乎不可用wait(可能是因为我正在使用zsh- ?)

\n
\xe2\x96\xb6 wait -n\nwait: job not found: -n\n
Run Code Online (Sandbox Code Playgroud)\n

是否还有其他可用的替代工具可以执行此操作MacOS

\n

也许奇怪的是,在调用包含wait -nas bash myscript.sh... 的脚本时,我遇到了相同的错误。

\n

use*_*428 -1

由于您正在通过指定 PID 来等待,因此您可以简单地执行

 wait $completion_pid $failure_pid
Run Code Online (Sandbox Code Playgroud)