【发布时间】:2012-04-05 23:48:54
【问题描述】:
我在我的 linux 机器上开发一个脚本已经有一段时间了,我也想在我的 Mac 上运行它。
我以为Mac上的功能和linux上的功能一样,但今天我意识到错了。我知道 Mac 上存在的函数较少,但我认为确实存在的函数具有相同的实现。
此问题与date 命令有关。
当我在我的 linux 机器上运行带有参数以提供以纳秒为单位的时间的命令时,我得到了正确的结果,但是当我在我的 mac 上运行它时,它没有该选项。
Linux-Machine> date +%N
55555555555 #Current time in nanoseconds
Mac-Machine> date +%N
N
如何在 Mac 上以 bash 命令的形式获取当前时间(以纳秒为单位)?
最坏的情况是我创建了一小段代码,用 C 或其他东西调用系统函数,然后在我的脚本中调用它。
非常感谢任何帮助!
【问题讨论】:
-
最糟糕的是 sed ;-)
-
我不会依赖 Linux 来遵守某些 Unix 标准。 Mac OS X 遵循单一 Unix 规范 V3,而不是 Linux。此外,从 bash 命令获得的具有纳秒精度的日期非常精确,但不是那么准确。你有什么需求?
-
感谢您的意见。我将了解 GNU 与 BSD,并查看 sed 之间的差异。 @mouviciel,我想创建一个自定义
time命令。 -
FWIW,带有
zmodload zsh/datetime的zsh 为您提供变量$EPOCHREALTIME作为浮点纪元时间戳。当然如果你不使用 zsh 对你帮助不大,但一般来说,fork 一个进程来获得一个精确的时间值(通过使用date)只是值得怀疑的。是的,通过“保证”一个唯一的时间戳(与仅获取纪元秒数相比)可能会稍微好一些,但仅此而已
标签: macos bash date scripting porting