我需要在 linux 操作系统上重复执行一个命令(例如 ls),我还想知道它从我开始观看以来已经运行了多长时间。
我知道我可以使用 watch
来执行命令。我的问题是如何显示“手表”何时开始?或者已经看了多久?
答案 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"'