在 Debian 10 Buster 上的 zsh 中获取与 MacOS 相同的 bash 时间命令格式

在 Debian 10 Buster 上的 zsh 中获取与 MacOS 相同的 bash 时间命令格式

来自以下链接更改时间命令的格式,我希望将与 MacOS Catalinatime命令完全相同的格式引入bash到 Debian 10 Buster 的 zsh 中。

因此,我测试了此链接给出的解决方案:

$ export TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S'

如果执行:$ time sleep 63

我得到:

real    63.00s
user    0.00s
sys     0.00s

而在 MacOS Catalina 的 bash 中,我使用相同的命令:

real    1m3.030s
user    0m0.004s
sys     0m0.014s 

我的意思是,在 Debian 上,经过的时间不会显示超过 60 秒的分钟数。它始终只显示秒数。此外,如果低于60s,我们会保留秒数前面的Om0.004s,即 Om

如何修复此问题,以让 Debian 10 zsh 与 MacOS bash 具有相同的格式?

答案1

我引用以下TIMEFMT部分man zshparam

可以在百分号和打印时间的标志之间插入星号(例如%*E);这样可以以格式打印时间hh:mm:ss.ttt(只有当小时和分钟不为零时才会打印)。或者,也可以使用m或(例如)分别以毫秒或微秒为单位输出时间。u%mE

因此,虽然它与 bash 中的格式不完全相同,但

export TIMEFMT=$'\nreal\t%*E\nuser\t%*U\nsys\t%*S'

你至少会得到相隔的分钟和小时数:

$ time sleep 63

real    1:03.00
user    0.000
sys     0.003

相关内容