shell在linux中,是使用者和kernel溝通的橋梁,採用c編寫,既是一種命令語言,也是一種解釋型指令碼語言,我們常寫的ls,grep就是基本的shell命令。
cat test.txt | grep abc > abc.txt & #將test.txt所有包含abc的行提取到abc.txt中
多個處理都這樣來做,即可完成多程序並行執行,下面先來看序列執行的邏輯
#!/bin/bash
for i in `seq 1 10`
do echo $i
sleep 1
done
執行後每隔一秒執行一次,大概10s執行完成。
執行語句後加上 &即可提交後台程序執行
#!/bin/bash
for i in `seq 1 10`
do &
done
wait
echo "等待所有程序執行完成"
並行執行,1s左右即可完成
如果希望序列與並行同時存在,可按如下方式採用兩層for迴圈進行:
#!/bin/bash
for i in `seq 1 10`
do for j in `seq 1 5`do&
done
wait
echo "等待所有程序執行完成, $i"
done
如果返回的內容過多,可以在執行語句之後加上1>/dev/null 2>/dev/null將標準輸出與標準錯誤輸到黑洞
for i in `seq 1 10`
do for j in `seq 1 5`
do1>/dev/null 2>/dev/null &
done
wait
echo "等待所有程序執行完成, round $i"
done
shell多程序執行
shell在linux中,是使用者和kernel溝通的橋梁,採用c編寫,既是一種命令語言,也是一種解釋型指令碼語言,我們常寫的ls,grep就是基本的shell命令。shell指令碼是將要執行的命令按一定順序寫成的乙個文字檔案,最近遇到乙個需求,要將一定數量的命令快速執行,而每次執行都需要一定的時間...
shell檔案中,多程序執行
一直苦惱乙個問題 shell程式設計中,當乙個任務完成時,接下來可以同時有兩個任務可以執行,這兩個任務互不影響。所以想當第乙個任務完成後,同時啟動後面的兩個任務,不知到shell中如何同時啟動。今天解決了 使用後台執行的方式 舉個例子說明比較好。有乙個總執行的all.sh,有三個任務shell,分別...
shell 併發多程序同時執行
shell 併發多程序同時執行 複製 1 bin bash 2 3 send thread num 13 設定程序數。4 tmp fifofile tmp fifo 指令碼執行的當前程序id號作為檔名 5 mkfifo tmp fifofile 新建乙個隨機fifo管道檔案 6 exec 6 tmp...