来自以下链接更改时间命令的格式,我希望将与 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