一直苦惱乙個問題:shell程式設計中,當乙個任務完成時,接下來可以同時有兩個任務可以執行,這兩個任務互不影響。所以想當第乙個任務完成後,同時啟動後面的兩個任務,不知到shell中如何同時啟動。
今天解決了:使用後台執行的方式 &。
舉個例子說明比較好。
有乙個總執行的all.sh,有三個任務shell,分別是aa.sh, bb.sh,cc.sh。
當執行玩aa.sh後,同時執行bb.sh,cc.sh。
all.sh
[html]view plain
copy
print?
#!/bin/bash
sh aa.sh
sh bb.sh &
sh cc.sh &
aa.sh
[html]view plain
copy
print?
#!/bin/bash
echo 'start'
sleep 10
echo 'end'
bb.sh
[html]view plain
copy
print?
#!/bin/bash
echo 'bb start '
sleep 10
echo 'bb end'
cc.sh
[html]view plain
copy
print?
#!/bin/bash
echo 'cc start '
sleep 10
echo 'cc end'
執行 all.sh就實現了這種功能。
有了這種方式,我們就可以簡單的進行效能測試了。
例如一種情形:100個人同時訪問乙個頁面10次(併發):
[html]view plain
copy
print?
#!/bin/bash
echo 'start'
echo 'end'
function hello()
do
sleep 1
echo "$----------------------------$j"
#wget www.******.com
done
} for i in
do
hello $i &
done
等待併發程式都結束之後,再執行後面的程式,使用wait命令
[html]view plain
copy
print?
sh aa.sh &
p1=$!
sh bb &
p2=$!
wait $p1 && wait $p2
shell執行 shell多程序執行
shell在linux中,是使用者和kernel溝通的橋梁,採用c編寫,既是一種命令語言,也是一種解釋型指令碼語言,我們常寫的ls,grep就是基本的shell命令。cat test.txt grep abc abc.txt 將test.txt所有包含abc的行提取到abc.txt中多個處理都這樣來...
shell多程序執行
shell在linux中,是使用者和kernel溝通的橋梁,採用c編寫,既是一種命令語言,也是一種解釋型指令碼語言,我們常寫的ls,grep就是基本的shell命令。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...