2017-07-30 58 views
0

我見過很多方法每n秒重複一次bash命令,但沒有人重複命令 n秒。重複bash命令n秒

有沒有一種方法來重複一個命令n秒?所以如果我的命令需要一秒執行,它會運行十次。如果需要兩秒鐘,它會運行五次。

如果它需要七秒鐘,它會執行兩次(或不再),或者它可能會退出腳本。

現在我正在通過查看腳本執行一次所需的時間,然後計算需要重複執行多少次才能執行n秒。但是,這是微不可靠的,因爲我發現運行腳本所需的時間有點偏離。

+0

對於在固定的時間間隔內執行未知次數有用*的是哪種命令?如果當您的間隔到期時作業當前正在執行,是否要終止該作業,或者只是在該作業完成後才啓動新的實例? – chepner

+0

現在我只想讓我的鍵盤閃爍特定的秒數。我真的不介意它閃爍了多少次 –

+0

我對Stack Overflow比較陌生。如果我的downvoter可以請我解釋爲什麼他或她低估了,我很樂意解釋我所做的任何錯誤(這可能會幫助我避免將來出現相關錯誤) –

回答

3
timetorun=30 # In seconds 
stoptime=$((timetorun + $(date +%s))) 
while [ $(date +%s) -lt $stoptime ]; do 
    something 
done 

注意,這將繼續運行的命令,直到timetorun秒已通過具體金額殺死它,所以通常它會實際運行都比較長。舉一個極端的例子,如果timetorun是30秒,程序需要29秒,它會運行兩次(因此需要58秒)。

0

如果你知道你想要多少次被執行

num_iter = 15 
while [ num_iter > 0 ] 
do 
    sh script.sh 
    sleep 2 
    let "num_iter--" 
done 

或者使用手錶-n重複命令每隔n秒,您可以使用此功能。然後你包裹手錶功能後的時間

+0

我不知道我需要執行多少次。我只知道我想重複劇本*爲*,例如30秒。 –

+0

我編輯了上面的腳本運行30秒,只要你的腳本執行時間不超過2秒。 – Vinny