Watch

watch 命令最小 -n 間隔

  • January 20, 2015

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

手冊頁和 Google 搜尋並未指明最小間隔下限是多少。我通過實驗發現它可以小於1秒。

為了測試,我在防火牆上執行了這個命令:

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

它顯然更新速度超過一秒,但不清楚它是否真的在進行 100ms 更新。

你在哪個平台?

在我的 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 程序的腳本對此進行了測試,該 C 程序以微秒列印時間戳並且它可以工作。

watch命令包含在procps實用程序中。

-noption的最小值是0.1,它在watch 原始碼中被硬編碼(參見第 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;

引用自:https://unix.stackexchange.com/questions/180077