我有一個UNIX腳本中的命令需要重複執行,但該命令可以運行,只有當上一個已成功完成下一次。我搜索了可以告訴腳本已經完成執行的命令,但我找不到它。我是unix腳本中的新手,並開始喜歡unix腳本。時,前一個是做
Q
時,前一個是做
0
A
回答
1
爲了一個命令只執行前一成功後,你需要寫兩個爲:
command1 && command2
若要用一個命令循環有了這個,你將需要檢查每次調用的返回狀態,如果不成功則退出循環;最短的形式應該是這樣的:
while your_command; do :; done
你也可以插入一個sleep
代替NOOP :
的。
0
您需要存儲你的背景指令的PID(進程ID)的一些文件,讓你的腳本可以自動檢查其是否仍在運行在下次啓動的時間。例如:
if [ ! "kill -0 $(</var/run/myscript-command.pid) 2>/dev/null 1>&2" ]; then
somecommand&
$CMD_PID = $!
echo $CMD_PID >/var/run/myscript-command.pid
fi
對於這個工作somecommand
需要守護自己。如果沒有,則將其稱爲:
nohup ./somecommand 0<&- &>/dev/null &
+0
謝謝羅伯特我會嘗試。 – 10hero
相關問題
- 1. 重做一個事件是否像之前做過的一樣?
- 2. 當時間是午夜做一個mysql_query
- 3. 刪除舊文件 - 一個小時前還是一個多小時前
- 4. 我如何做一個腳本去前一頁和前頁?
- 5. 做一個工具欄,是一個UIPageViewController
- 6. rspec之前:每個 - 如何做一行,而不是do..end塊?
- 7. 做一個Android倒計時
- 8. PHP:一個小時前,X小時前
- 9. 設計數據庫時使用表前綴是否是一種好的做法?
- 10. 根據時間(而不是小時)做出一個條件
- 11. 做一個函數只是一個時間只能有一個線程在TPL
- 12. jQuery的 - 做一些事情時,不是選擇一個選項
- 13. 在另一個表格前面做一個表單顯示
- 14. 做一個動作只是一次
- 15. 做一個cookie在一小時內
- 16. 當前時間是特定的時候結束一個循環
- 17. 什麼時候是一個叫做spring bean的destroy-method?
- 18. 當meta_key的值是一個數組時,如何做meta_query?
- 19. 在Javascript中聲明一個數組時,最好的做法是哪一個?
- 20. 什麼是一個簡單的方法來做一個計時器?
- 21. memcached:這是更快,做一個添加(和檢查結果),或做一個get(並在返回false時設置)
- 22. 是一個叫做某處的腳本
- 23. 什麼是一個爲(;;)循環做
- 24. 做一個GSUB通話而不是5
- 25. 我如何做是一個迭代
- 26. 是@unlink一個不好的做法?
- 27. 什麼是做一個拉請求
- 28. 做一個AJAX
- 29. 第一個參數做的onload =時FN
- 30. 一個人如何實時做某事?
如果您沒有在後臺顯式運行命令,則腳本的下一行僅在命令完成時纔會執行。 – tripleee
我前面一樣使用:#!/ bin/sh的命令1;命令2; ....但問題是,所有給定的命令同時執行。那麼在每個命令之後,我會在估計執行每個命令的時間後給出睡眠20。它真的很好:)即使你在前臺運行它 – 10hero
所以'command1'啓動一個後臺的工作嗎?有什麼辦法可以防止這種情況發生?例如,一些守護進程可以在前臺運行'--interactive'等選項。 – tripleee