bash等待返回错误的退出状态

时间:2016-05-09 19:58:00

标签: bash wait

我正在尝试运行多个后台进程,然后如果其中任何一个失败则退出并显示错误。无论出于何种原因,我都无法从wait获得退出状态,以便按照文档记录。这很令人抓狂,因为如果我从命令行手动尝试#!/bin/bash -ex # ... pids= for remote in $REMOTE; do ssh $remote run-script.sh & pids=${pids:+${pids} }$! done set +e wait $pids result=$? set -e echo $result # should be nonzero because remote script exits with 1 ,我会得到预期的结果,但是当我尝试运行启动远程进程的脚本时,等待总是成功。

exit 1

调试输出++ pids= ++ for remote in '$REMOTE' ++ pids=8142 ++ set +e ++ wait 8142 ++ ssh user@host run-script.sh ++ exit 1 ++ result=0 ++ set -e ++ echo 0 0 来自远程脚本)

wait < <(jobs -p)

我也尝试过使用作业,但如果脚本快速结束,则因为结果不一致而放弃了作业:

String submitAction

0 个答案:

没有答案