2017-07-05 120 views
0

嗨即時通訊工作在一個簡單的bash編碼我不知道如何做到這一點,這可能很容易爲你們請幫助。在X時間運行Bash命令並終止X時間

我有一個簡單的程序上file.sh

#!/bin/bash 

./program 

這./program是C程序的編譯版本,我使用GCC我嘗試在bash腳本用來爲一些執行該程序符合秒,然後在x間隔時間後終止並再次重新啓動。

我希望你明白了我的觀點?

示例:運行file.sh 10秒鐘,然後顯示./程序C程序的結果,然後在10秒後再次重新啓動。

回答

3

答案是,如果我理解正確的sleeptimout組合:

while :; do 
    timout 10s ./program 
    # display some results 
    sleep 10 
done 
+0

謝謝你的工作!在這裏做什麼樣的睡眠10? –

+0

@Noor對於大多數UNIX命令,使用'man'來獲取文檔。 「男人睡眠」和「男人超時」。有時它不起作用,因爲該命令是內置的shell。然後在'man bash','info bash'或網絡上的bash文檔中查找它。 – slim

+0

你問過,10秒後,程序應該重新開始。所以程序結束後,腳本會休眠10秒。 –

1

您可以使用sleep命令。例如:exec ./program && sleep n其中n是您希望命令進入睡眠狀態的時間。如果你想要的話,你可以把它放在sh腳本的一個while循環中,並連續運行它。

,直到您關閉終端持續運行:

while true 
do 
    echo "[CTRL+C] to stop..." 
    timeout 10s ./program 
done 
+0

我該如何使用它在我的bash代碼? –

+0

'exec ./program && sleep 10'是否工作?如果我理解你的問題,它應該做的竅門 – al3xkr

+0

當它執行終端立即關閉:exec ./program && sleep 10 –