Bash

如何反复停止和重新啟動命令

  • June 5, 2020

我正在嘗試找到一種簡單的方法來在一定時間後重複重新啟動命令(對於這個問題,假設 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

(延遲以十分之一秒為單位)

引用自:https://unix.stackexchange.com/questions/591040