http://blog.csdn.net/shuanghujushi/article/details/38186303
最近在使用shell做一些部署工作,在使用過程中,效率一直不高。想提高效率,經過分析發現,并不是所有操作都是需要串行的,一些操作是可以進行并行操作的。經過學習,shell里面也是可以進行多線程編程的,而且十分方便,同時,wait命令可以進行shell的多線程同步控制。下面是shell多線程和wait命令的一些學習體會。錯誤之處,還請大家指正。
一、啟動后臺子任務
? ? ? ? 在執行命令后加&操作符,表示將命令放在子shell中異步執行。可以達到多線程效果。如下,
二、wait命令介紹
? ? ? ? wait? [作業指示或進程號]
? ? ? ? 1.等待作業號或者進程號制定的進程退出,返回最后一個作業或進程的退出狀態狀態。如果沒有制定參數,則等待所有子進程的退出,其退出狀態為0.
? ? ? ? 2.如果是shell中等待使用wait,則不會等待調用函數中子任務。在函數中使用wait,則只等待函數中啟動的后臺子任務。
? ? ? ? 3.在shell中使用wait命令,相當于高級語言里的多線程同步。
三、例子
1.使用wait等待所有子任務結束。
2.在函數中使用wait
輸出結果為:
從輸出結果,可以看到,整個腳本,等待了所有子任務的退出