亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
按時間并行執(zhí)行多個程序
[打印本頁]
作者:
夏洛特貓
時間:
2016-05-26 08:03
標(biāo)題:
按時間并行執(zhí)行多個程序
本帖最后由 夏洛特貓 于 2016-05-26 09:43 編輯
在這里先謝謝前輩們的指點
,話不多說,問題描述如下:
有N個腳本(要運行的程序個數(shù)為可變量),需要設(shè)置一個新的啟動腳本,當(dāng)運行啟動腳本時候,每個腳本按照設(shè)定的sleep時間,只要時間到了就分別執(zhí)行對應(yīng)的程序。
實例:可運行程序為3個,第一個程序為 echo "laste",第二個腳本為echo "first",第三個腳本為echo"second"
當(dāng)運行啟動腳本時,12s的時候執(zhí)行第一個腳本,5s的時候執(zhí)行第二個腳本,10s時候執(zhí)行第三個腳本(這里的執(zhí)行時間是可變的)
--------------------------------------------------------------------------------------------------------------------------------------------------------------
我的實現(xiàn)方法比較笨,如下,希望大家給些優(yōu)化和指點和提供些更簡單的思路和實現(xiàn)方法,多謝了
針對給的腳本我寫了四個腳本,第四個為啟動腳本。
1.sh
sleep 12
echo "laste"
2.sh
sleep 5
echo "first"
3.sh
sleep 10
echo "second"
4.sh
1.sh & 2.sh &3.sh
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
顯示結(jié)果如下:
first
second
/home/L#laste
光標(biāo) (需回車才可以跳出,不知道為什么會這樣,當(dāng)?shù)谝荒_本排在第一個和第二顯示則不會出現(xiàn)這種狀況,還希望前輩們告訴下原因,多謝了)
作者:
Riet
時間:
2016-05-26 09:25
我感覺是因為你4.sh里面 把其他三個腳本放在后臺執(zhí)行的原因。
如果你不需要回車跳出你可以這樣
#!/bin/bash
./1.sh &
./2.sh &
./3.sh &
wait
作者:
夏洛特貓
時間:
2016-05-26 09:42
多謝您的幫助 ,可以執(zhí)行完直接跳出了 回復(fù)
2#
Riet
作者:
ly5066113
時間:
2016-05-26 10:01
回復(fù)
1#
夏洛特貓
try:
#! /bin/bash
second=(12 5 10)
script=(1.sh 2.sh 3.sh)
l=${#second[@]}
t=1
n=$l
while [ $n -gt 0 ]
do
sleep 1
for((i=0;i<l;i++))
do
if [ "${second[$i]}" = $t ]
then
${script[$i]} &
unset second[$i]
fi
done
let t=t+1
n=${#second[@]}
done
wait
復(fù)制代碼
作者:
夏洛特貓
時間:
2016-05-26 10:28
非常感謝,把輸入的變量看成數(shù)組,之后對存在的數(shù)組一次做循環(huán)的思路我沒想到,thanks~ 回復(fù)
4#
ly5066113
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2