在 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`的变化的主要内容,如果未能解决你的问题,请参考以下文章