【发布时间】:2017-04-03 13:39:09
【问题描述】:
我有这段代码,可以并行启动 make t1、make t2 和 make t3。
有没有办法在一个失败时杀死其余的 make 进程?例如,如果 make t2 失败,脚本应该杀死其他 2 个正在运行的(make t1 和 make t3)并出来。
for ARG in '"t1" "t2" "t3"'
do
cd ${ARG}
make ${ARG} & pid=$!
PID_LIST+=" $pid";
cd -
done
trap "kill $PID_LIST" SIGINT
echo "Parallel makes have started $PID_LIST"
wait $PID_LIST
【问题讨论】:
-
你为什么使用
eval?for arg in "t1" "t2" "t3"; do make "$arg" & pids+=($!); done -
谢谢,将按照您的建议在我的代码中更改它