ZSH的time命令是否接受-p之类的参数?

时间:2019-06-14 15:56:53

标签: performance zsh timing

我最近安装了macOS 10.15 Catalina的开发人员beta,默认为ZSH而不是BASH。

我已将time作为二进制文件安装在/usr/bin/time中,并用它来计时一些脚本。但是,ZSH将其作为内置命令。 我的问题是我通常使用time -p以自己喜欢的方式格式化其输出,但这在ZSH上似乎无法实现。

根据man time

  
     -p      The output is formatted as specified by IEEE Std 1003.2-1992 (``POSIX.2'').

这似乎不适用于ZSH的内置文件,并且ZSH似乎没有使用我安装的time二进制文件:

BASH

bash-5.0$ which time
/usr/bin/time
bash-5.0$ time echo hello; echo $?
hello

real    0m0.000s
user    0m0.000s
sys 0m0.000s
0
bash-5.0$ time -p echo hello; echo $?
hello
real 0.00
user 0.00
sys 0.00
0

ZSH

is-mbp-bleggiero% which time
time: shell reserved word
is-mbp-bleggiero% time echo hello; echo $?
hello
0
is-mbp-bleggiero% time -p echo hello; echo $?
zsh: command not found: -p
-p echo hello  0.00s user 0.00s system 74% cpu 0.001 total
127

在我看来这很奇怪;它似乎包含了我想要的信息(用户与系统和总计,格式为秒),但它也没有运行该命令,而是抱怨它不存在。

1 个答案:

答案 0 :(得分:1)

如果要使用此选项,可以致电MvcHtmlString/usr/bin/time -p

zsh内置时间不带任何选项(=time -p)。

但是您可以man zshmisc使用所需的格式,包括export TIMEFMT在内的换行符。

\n看看现在是什么