我有這樣等待與去年子進程的返回碼在後臺完成,並退出所有的子進程
middle.ksh <parameter>
inner1.ksh <para> > Log 2>&1 &
p1=$!
inner2.ksh <para> > log 2>&1 &
p2=$!
inner3.ksh <para> > log 2>&1 &
p2=$!
sleep nnn
inner4.ksh <para> > log 2>&1 & /# L1last process fired
p2=$!
rc=$? /# I am checking the rc for the last process
wait
一個殼,我想這樣做 --find出如果所有的在後臺發起的進程已經完成。 - 全部完成後,我希望middle.ksh以上一個子進程的返回代碼退出 - 例如上面的例如inner4.ksh。換句話說 - 我想說middle.ksh運行良好,如果它內部觸發的所有進程成功(內部1..4)& & inner4.ksh成功。 如果inner4.ksh失敗 - middle.ksh失敗。 現在我可以收集每個PID,並說wait p1 p2 p3 etc
問題是所有這些孩子的貝殼動態地寫在包裝(middle.ksh),所以我不知道有多少inner.ksh會有可以是10-可以是100 可以它很容易完成 - 或者我錯過了一些東西。 TY