[SHELL] shell 實現多程式後,如何等待所有程式結束
1> 多程式實現 :主要方法是使用 & 符號,將命令fork到後臺執行
2>等待結束的方法:
2.1、使用 wait 命令
#!/bin/bash
sleep 10 && echo "1" >> s.lock &
sleep 12 && echo "1" >> s.lock &
sleep 8 && echo "1" >> s.lock &
while [[ $(cat s.lock | wc -l) < "3" ]]; do
sleep 1
done
echo "over"
2.2 當你使用for in ; do done的方式建立多程式的時候,用wait 命令會失敗,曲線救國方法是建立一個標誌,週期檢查
#!/bin/bash
set -e
WAIT_LOCK="/tmp/wait.lock"
wait_it(){
tmp_lock=$2
if [[ -f $tmp_lock ]]; then
rm $tmp_lock
touch $tmp_lock
#數檔案記錄,只要記錄數大於等於程式數,表明執行結束
while [[ $(cat $tmp_lock | wc -l) < $1 ]]; do
echo "*"
sleep 10
done
}
#開啟10個程式,每個程式成功就向檔案追加一條記錄
for i in {1..10}; do echo $i ; ( sleep $i && echo "1" >> $WAIT_LOCK & ); done
wait_it 10 $WAIT_LOCK
echo "Over!"
相關文章
- shell的多程式實現
- shell程式的結束狀態
- 自己動手實現 Shell 多程式管道符
- java 如何實現等待子執行緒結束Java執行緒
- Java:多執行緒等待所有執行緒結束(CountDownLatch/CyclicBarrier) .Java執行緒CountDownLatch
- shell 指令碼實現的守護程式指令碼
- shell程式設計例項--實現累加程式設計
- Shell程式設計 --- Shell介紹程式設計
- shell 和程式
- 一個殺死終端所有程式的 Shell(轉)
- [轉]:多程式等待的跨平臺實現
- Shell程式設計-shell變數1程式設計變數
- Bourne Shell及shell程式設計(轉)程式設計
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- Linux Shell程式設計(2)——第一個shell程式Linux程式設計
- shell程式設計系列程式設計
- shell程式設計程式設計
- Shell程式設計-02-Shell變數程式設計變數
- Linux Shell程式設計(27)——子shellLinux程式設計
- 用Shell擴充套件實現原始碼統計程式套件原始碼
- Linux Shell程式設計(1)——shell程式設計簡介Linux程式設計
- Linux 等待程式結束 wait() 和 waitpid()LinuxAI
- [shell問答錄]:命令、程式、子shell...(轉)
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維
- shell替換程式碼
- Windows Shell 程式設計Windows程式設計
- shell程式設計(轉)程式設計
- shell程式設計二程式設計
- shell程式設計五程式設計
- shell實現多節點ssh密碼登入密碼
- Linux Shell 實現隨機數多種方法Linux隨機
- 通過shell繫結系統程式調優
- [shell進階]——shell多執行緒執行緒
- Linux Shell 程式設計實戰技巧Linux程式設計
- Shell程式設計-09-Shell中的函式程式設計函式
- Linux Shell程式設計(4)——shell特殊字元(上)Linux程式設計字元
- Linux Shell程式設計(5)——shell特殊字元(下)Linux程式設計字元
- Linux Shell 之 我的第一個Shell程式Linux