在Linux命令行中,是否有可能每n秒重复一次命令?

假设,我有一个导入正在运行,我正在做

ls -l

检查文件大小是否在增加。我想有一个命令,有这个自动重复。


当前回答

在Busybox中,“watch”一秒都不允许,而“sleep”一秒允许。如果这对你来说很重要,试试这个:

while true; do ls -l; sleep .5; done

其他回答

一个简洁的解决方案,如果您想重复运行命令直到失败,这个解决方案特别有用,并且可以让您看到所有输出。

while ls -l; do
    sleep 5
done

您可以运行以下命令并仅过滤大小。如果文件名为somefilename,可以执行以下操作

而:;Do ls -lh | awk '/some*/{print $5}';睡眠5;完成

众多想法之一。

为了更容易地减少漂移,使用:

while :; do sleep 1m & some-command; wait; done

由于bash运行循环结构和sleep命令实际执行的时间,仍然会有少量的漂移。

提示:':'的值为0即为真。

如果命令中包含一些特殊字符,如管道字符、引号等,则需要使用引号进行填充。例如,要重复ls -l | grep "txt",则watch命令应为:

查看-n 5 'ls -l | grep "txt"'

Sleep已经返回0。因此,我使用:

while sleep 3 ; do ls -l ; done

这比米哈伊尔的解要短一点。一个小缺点是它在第一次运行目标命令之前处于休眠状态。