“观看”并告诉它已经观看了多长时间

时间:2021-03-23 03:57:20

标签: linux watch

我需要在 linux 操作系统上重复执行一个命令(例如 ls),我还想知道它从我开始观看以来已经运行了多长时间

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

1 个答案:

答案 0 :(得分:1)

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

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"'
相关问题