2013-02-05 28 views
1

可能重複:
How to wait in bash for several subprocesses to finish and return exit code !=0 when any subprocess ends with code !=0?多個命令優先

我有以下問題:

我有3個過程,我把一個腳本

process1 process2 proc ess3

我希望進程1和2同時運行,但它們都在進程3啓動之前完成。

我想這是一樣的東西,我不知道該following..but「等待」

#!/bin/sh 

    (
     process1 & 
     process2 & 

     wait 

     process3 

       ) 

謝謝

法比奧

+1

這將做你想做的。你不需要()構造。 –

回答

3

只需保存兩個進程的PID和等待兩者退出

#!/bin/bash 

process1 & 
pid1=$! 
process2 & 
pid2=$! 

wait ${pid1} 
echo "Return value of process1: $?" 
wait ${pid2} 
echo "Return value of process2: $?" 

process3 
+0

所以單一的等待在你看來沒有任何意義? – fabioln79

+0

它也適用。這只是我的習慣,我認爲它更好,因爲如果你願意,你可以檢查過程的返回值 –

+0

瞭解它!謝謝你們。法比奧 – fabioln79