watch 命令最小 -n 间隔

watch 命令最小 -n 间隔

watch 命令的最小间隔是多少?

手册页和 Google 搜索并未表明最小间隔下限是多少。我通过实验发现可以小于1秒。

为了进行测试,我在防火墙上运行了以下命令:

watch -n 0.1 cat /sys/class/net/eth1/statistics/rx_bytes

显然更新速度超过一秒,但不清楚是否真的在进行 100 毫秒更新。

答案1

你在什么平台?

在我的 Linux (Ubuntu 14.10) 上手册页说:

 -n, --interval seconds
          Specify  update  interval. The  command will not allow quicker
          than 0.1 second interval, in which the smaller values  are  con‐
          verted.

我刚刚使用一个调用 C 程序的脚本对此进行了测试,该程序打印了微秒的时间戳,并且它有效。

答案2

watch命令包含在过程公用设施。

选项的最小值-n0.1,它被硬编码在观看源代码(参见第 171 - 172 行):

case 'n':
    {
        char *str;
        interval = strtod(optarg, &str);
        if (!*optarg || *str)
            do_usage();
        if(interval < 0.1)
            interval = 0.1;
        if(interval > ~0u/1000000)
            interval = ~0u/1000000;
    }
    break;

答案3

事实上,你已经到了极限。手册页提供最小值(至少在我的 2009 Linux 版本上)。事情是这样的:

-n, --interval seconds
Specify update interval. The command will not allow quicker 
than 0.1 second interval, in which the smaller values are converted.

date您也许可以通过使用through来检查watch

$ watch -n0.1 date +'%H:%M:%S:%N'

如果您查看最后一个字段中的第一位数字(纳秒),您会发现它快速递增,这意味着每次watch迭代都会添加约 100 毫秒。

相关内容