【问题标题】:Real-time display of `date` changes on Linux在 Linux 上实时显示`date`的变化
【发布时间】: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: 好编辑,好眼光。谢谢。

标签: linux date busybox


【解决方案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 可以完成这项工作。好的。 :) 不过,我想知道是否有没有明确轮询的解决方案?为了获得最小的延迟。
  • 嗯,这不是我所追求的,但它似乎是我能得到的最接近的。 :) 所以我会接受。
猜你喜欢
  • 2013-06-21
  • 2015-05-11
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 2019-12-19
  • 2019-08-23
  • 1970-01-01
相关资源
最近更新 更多