fla*_*awr 1 bash watch timeout
我试图找到一种简单的方法来在一定时间后重复重新启动命令(就本问题而言,假设为 10 秒)。为了简单起见,我们假设有问题的命令是htop --tree。
到目前为止,我的尝试是:一旦找到命令,就运行然后停止命令timeout,因此timeout 10 htop --tree运行命令并在 10 秒后再次停止。重复一下,我找到了一个命令watch,它可以让您在每个给定的时间间隔重新运行命令。所以我的尝试是将两者结合起来使用
watch -n 10 `timeout 9 htop --tree`
Run Code Online (Sandbox Code Playgroud)
但随后它的输出htop不显示。任何人都可以看到我做错了什么或如何解决这个问题,或者为我想要实现的目标提出替代的 bash 解决方案?
是的,该watch实用程序会影响某些命令的工作方式。最好只使用循环。似乎您正在请求查看命令的输出htop,作为命令,这可能不是您真正想要的(只是发现那些反引号,这是命令替换,意味着命令的该部分将被替换通过内命令的输出)。
while true; do
timeout 10 htop --tree
done
Run Code Online (Sandbox Code Playgroud)
根据您想要实现的效果,您可能还想研究更新延迟本身htop。这里,我使用 10 秒刷新率:
htop -d 100
Run Code Online (Sandbox Code Playgroud)
(延迟以十分之一秒为单位测量)