如何重复停止和重新启动命令

如何重复停止和重新启动命令

我试图找到一种简单的方法来在一定时间后重复重新启动命令(就本问题而言,假设为 10 秒)。为了简单起见,我们假设有问题的命令是htop --tree

到目前为止我的尝试:只运行然后停止命令一次我找到了该命令timeout,因此timeout 10 htop --tree运行该命令并在 10 秒后再次停止。重复一下,我找到了一个命令watch,它可以让您在每个给定的时间间隔重新运行命令。所以我的尝试是将两者结合起来使用

watch -n 10 `timeout 9 htop --tree`

但随后它的输出htop不显示。任何人都可以看到我做错了什么或如何解决这个问题,或者为我想要实现的目标提出替代的 bash 解决方案?

答案1

是的,该watch实用程序会影响某些命令的工作方式。最好只使用循环。似乎您还要求观看输出命令的一部分htop,作为命令,这可能不是您真正想要的(只是发现那些反引号,这是命令替换,意味着命令的该部分将被其中命令的输出替换)。

while true; do
    timeout 10 htop --tree
done

根据您想要实现的效果,您可能还想研究更新延迟本身htop。这里,我使用 10 秒刷新率:

htop -d 100

(延迟以十分之一秒为单位测量)

相关内容