"watch" 并告诉它观看了多长时间

"watch" and tell how long it has been watching

我需要在 linux OS 上重复执行命令(例如 ls),我也想知道 它已经执行了多长时间 运行 自从我开始看。

我知道我可以使用watch来执行命令。我的问题是如何显示“手表”何时开始?或者看了多长时间?

它不受开箱即用的支持,但您可以通过提供更复杂的命令来绕过它。

watch bash -c '"echo $(($(date +%s) - '$(date +%s)'))s; echo ---; ls"'

与其直接观察您想要的命令(在此玩具示例中为 ls),不如观察 bash 实例,因为它可以解析命令行并执行更多操作。我们告诉这个 bash 执行三个命令,第一个命令计算自 watch 调用纪元以来的秒数与 bash 调用纪元以来的秒数之间的差异。第二个打印一行,因为为了美观,第三个然后执行所需的命令。

显示手表启动时间遵循相同的思路,但更简单:

watch bash -c "'echo $(date); echo ---; ls'"

请注意引号的顺序不是随机的。最后一个命令也可以写成类似于上面的命令:

watch bash -c '"echo '$(date)'; echo ---; ls"'