ZSH 的时间命令是否接受任何参数,如 -p?
Does ZSH's time command take any arguments like -p?
我最近安装了 macOS 10.15 Catalina 的开发者测试版,它默认使用 ZSH 而不是 BASH。
我在 /usr/bin/time
中安装了 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
我觉得这很奇怪;它似乎包括我想要的信息(用户与系统和总计,格式为秒),但它也没有 运行 命令,而是抱怨它不存在。
如果你想使用这个选项,你可以调用/usr/bin/time -p
,或者=time -p
zsh 内置时间不接受任何选项 (man zshmisc
)。
但是您可以 export TIMEFMT
使用您想要的格式,包括使用 \n
的换行符。
echo $TIMEFMT
看看现在是什么
我最近安装了 macOS 10.15 Catalina 的开发者测试版,它默认使用 ZSH 而不是 BASH。
我在 /usr/bin/time
中安装了 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
我觉得这很奇怪;它似乎包括我想要的信息(用户与系统和总计,格式为秒),但它也没有 运行 命令,而是抱怨它不存在。
如果你想使用这个选项,你可以调用/usr/bin/time -p
,或者=time -p
zsh 内置时间不接受任何选项 (man zshmisc
)。
但是您可以 export TIMEFMT
使用您想要的格式,包括使用 \n
的换行符。
echo $TIMEFMT
看看现在是什么