Bash
如何反复停止和重新啟動命令
我正在嘗試找到一種簡單的方法來在一定時間後重複重新啟動命令(對於這個問題,假設 10 秒)。為簡單起見,假設有問題的命令是
htop --tree
.到目前為止我的嘗試:只要找到命令就執行然後停止命令,因此執行命令並在 10 秒後再次停止它。重複一遍,我找到了可以讓您在每個給定時間間隔重新執行命令的命令。所以我的嘗試是將兩者結合使用
timeout``timeout 10 htop --tree``watch
watch -n 10 `timeout 9 htop --tree`
但隨後它的輸出
htop
沒有顯示出來。誰能看到我做錯了什麼或如何解決這個問題,或者為我想要實現的目標提出一個替代的 bash 解決方案?
是的,該
watch
實用程序會影響某些命令的工作方式。最好只使用一個循環。似乎您還要求查看命令的輸出,htop
作為命令,這可能不是您真正想要的(只是發現那些反引號,這是命令替換,這意味著命令的那部分將被替換通過內部命令的輸出)。while true; do timeout 10 htop --tree done
根據您想要達到的效果,您可能還需要調查更新延遲
htop
本身。在這裡,我使用 10 秒的刷新率:htop -d 100
(延遲以十分之一秒為單位)