为什么 Ubuntu 的“时间”不遵循标准 POSIX 格式,我该如何更改它?

为什么 Ubuntu 的“时间”不遵循标准 POSIX 格式,我该如何更改它?

如果您在 Ubuntu 18.04 中测量时间,结果将显示在一行中:

$ time sleep 1
sleep 1  0.00s user 0.00s system 0% cpu 1.003 total

这与 POSIX 标准不符,如time手册页中所述:

-p, --portability
       Use the following format string, for conformance with POSIX standard 1003.2:
                 real %e
                 user %U
                 sys %S

现在我的问题是:

为什么 Ubuntu 使用自己的格式来显示资源使用情况?

另外,我该如何改变这种行为?使用-p上面引用的手册中的选项,我只得到以下错误:

$ time -p sleep 1           
zsh: command not found: -p
-p sleep 1  0.00s user 0.00s system 73% cpu 0.002 total

答案1

你的错误是一个巨大的线索 -

zsh:未找到命令:-p

您使用的是 zsh,而不是 BASH 或 DASH。

time 的手册页与外部 /usr/bin/time 程序有关:bash 和 zsh 都提供了自己的 time shell 内置命令(恰好有一个等效的 -p 开关)

纠正@steeldriver 的评论

我在标准 Ubuntu 上使用默认 bash 获得了不同的结果 - 或者您无疑想要/期望的结果。

guiverc@d960-ubu2:~$  time -p sleep 1
real 1.09
user 0.00
sys 0.00

相关内容