shell 脚本中的毫秒时间

Raj*_*hai 4 shell shell-script date

有人如何以毫秒为单位打印整个时间,例如 12:07:59:393(HH:MM:SS:milliseconds)。我发现很多帖子都说如何与 HHMMSS 一起打印毫秒,但我想以毫秒为单位打印实时时钟。我正在使用 Linux。

maz*_*azs 7

这将为您提供自 Unix 纪元开始以来已经过去了多少毫秒:

date +%s%3N
Run Code Online (Sandbox Code Playgroud)

您必须减少到今天上午 00:00 过去的秒数*1000。或者您可以从这个公式中将所有内容转换为毫秒:

date +%H%M%S%3N
Run Code Online (Sandbox Code Playgroud)

喜欢 :

h=$(date +%H)
m=$(date +%M)
s=$(date +%S)
ms=$(date +%3N)
echo $((10#$h*3600000 + 10#$m*60000 + 10#$s*1000 + 10#$ms))
Run Code Online (Sandbox Code Playgroud)

执行此操作平均需要 4 毫秒,您可能希望减少该时间。

编辑:如果变量之一中有前导零,脚本将失败。我在变量名前面添加了 10#,以去除前导零,以便我们得到,例如,8 而不是 08。

  • 问题被标记为/linux。你的反 GNU 偏见在这里不适用。 (5认同)