2011-07-01 25 views
2

我試圖做類似的bash腳本如下:如何編寫腳本以在後臺運行多個進程,並在每個單獨的命令完成後運行其他命令?

for x in a b c; do echo foo $x; sleep 5 & y=$! ; (wait $y && echo bar $x) & done 

這是可能的,而不會增加太多的複雜性(當然上面的例子中實際上不工作)?

編輯:

當然在現實中,echo foo $x; sleep 5將是例如,拷貝一些大的文件或編譯的東西大,第二個操作將是依賴於第一操作。

回答

6

也許我失去了一些東西,但關於使用() S和把對整個子組命令&什麼...

for i in 1 2 3; do (echo $i; sleep 5; echo end $i)& done 
+0

謝謝你,是的,我只注意到這一點。如果在我的問題中提出了一個簡單的方法來同時等待不同的後臺進程,我仍然會感興趣。 – jonderry

+1

這基本上是';'和'&&'語法的用語。 –

相關問題