在 Linux 上实时显示`date`的变化

Posted

技术标签:

【中文标题】在 Linux 上实时显示`date`的变化【英文标题】:Real-time display of `date` changes on Linux 【发布时间】:2011-07-15 04:07:23 【问题描述】:

在一个不存在/dev/rtc*的嵌入式Linux设备上,我如何启动一个控制台窗口,每次都将实时时钟的值写入控制台会变吗?

结果如下:

$ **someCmd**
Mon Mar 14 16:43:22 UTC 2011
Mon Mar 14 16:43:23 UTC 2011
Mon Mar 14 16:43:24 UTC 2011
Mon Mar 14 16:43:25 UTC 2011
Mon Mar 14 16:43:26 UTC 2011

等等

设备是armv5tejl,运行 BusyBox v1.13.3。

【问题讨论】:

它假定一个非tickless内核,即有以HZ速率的定时器滴答。为什么需要这个? @Maxim:我不需要它。我看着天空,决定我想知道这是否可以做到。我认为这会很有趣。 @x29a: 好编辑,好眼光。谢谢。 【参考方案1】:

使用 watch commad,试试这个: watch -n 1 date

【讨论】:

它只需要整数秒作为间隔,这意味着结果可能在任何给定时间最多为 0.9999 秒。这是一种轮询方法(不如 Thomas 的轮询方法好),它不会“即时”输出到控制台!不过谢谢... 不用轮询就可以做到吗?这可能是新答案的基础:) 在 CentOS 7 上使用 watch -n 0.1 date 可以正常工作,每 0.1 秒更新一次值【参考方案2】:

我不知道 BusyBox shell 支持多少,但是在 sh 中你可以这样做:

 while true ; do date ; sleep 0.1 ; done  | uniq

【讨论】:

sleep 在我们的 BusyBox 上不会带分数,尽管 while true ; do date ; usleep 100000 ; done | uniq 可以完成这项工作。好的。 :) 不过,我想知道是否有没有明确轮询的解决方案?为了获得最小的延迟。 嗯,这不是我所追求的,但它似乎是我能得到的最接近的。 :) 所以我会接受。

以上是关于在 Linux 上实时显示`date`的变化的主要内容,如果未能解决你的问题,请参考以下文章

在地图上实时显示网站访问者

4种方法实时监控Linux日志文件

在存在数据安全问题的网站上实时显示不断增长的数据库的结果

有啥办法可以在 Linux 上实时查看 USB 设备?

使用 FAST 检测器在 Android 上实时识别对象

实时显示系统时间