[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程式設計 --- Shell介紹程式設計
- shell 和程式
- Shell程式設計-shell變數1程式設計變數
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- [轉]:多程式等待的跨平臺實現
- Shell程式設計程式設計
- Shell程式設計-02-Shell變數程式設計變數
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維
- shell程式設計五程式設計
- shell程式設計二程式設計
- Shell程式設計-09-Shell中的函式程式設計函式
- Linux與Shell 第2天 實操、軟體包管理、Shell程式設計Linux程式設計
- Shell程式設計-01-Shell指令碼初步入門程式設計指令碼
- Linux之shell程式設計Linux程式設計
- Shell程式設計-基礎程式設計
- Shell程式設計-read命令程式設計
- shell程式設計進階程式設計
- shell 程式設計簡記程式設計
- Linux Shell程式設計(1)Linux程式設計
- Linux Shell程式設計(2)Linux程式設計
- shell程式設計基礎程式設計
- 通用程式部署shell指令碼指令碼
- Shell 程式設計入門程式設計
- 初識shell程式設計程式設計
- shell script程式設計小結——附帶例項程式設計
- Shell 指令碼程式併發&程式數控制指令碼
- Java CompletableFuture:allOf等待所有非同步執行緒任務結束Java非同步執行緒
- shell高效程式設計:shell指令碼從未如此美麗程式設計指令碼
- shell指令碼程式設計之選擇控制結構指令碼程式設計
- bash shell 程式與磁碟資料
- Shell程式設計——極簡教程程式設計
- shell程式設計–bash變數程式設計變數
- shell程式設計—簡介(一)程式設計
- Shell 指令碼程式設計陷阱指令碼程式設計
- shell程式設計基礎二程式設計
- 作業系統實驗(一)-Shell程式設計作業系統程式設計