我有這段代碼,並行啓動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'水貨?對於「t1」「t2」「t3」中的arg;做「$ arg」&pids + =($!);完成' – chepner
謝謝,將改變它在我的代碼中,因爲你建議 – rodee