为什么 zsh 时间对某些命令不起作用,但 bash 时间可以?

问题描述 投票:0回答:1

为什么 Zsh

time
对于某些命令不起作用,

➜  ~ type time
time is a reserved word
➜  ~ time sleep 1
sleep 1  0.00s user 0.00s system 0% cpu 1.004 total
# not work for echo
➜  ~ time echo hello
hello
# not work with for 
➜  ~ time for i in {1..3}; do curl -s http://baidu.com > /dev/null; done

但是如果更改为 bash 这些命令都受支持,

➜  ~ exec bash
bash-3.2$ type time
time is a shell keyword
$ time echo hello
hello

real    0m0.000s
user    0m0.000s
sys 0m0.000s

bash-3.2$ time for i in {1..3}; do curl -s http://baidu.com > /dev/null; done

real    0m0.099s
user    0m0.019s
sys 0m0.018s
time zsh oh-my-zsh
1个回答
0
投票

zsh time 命令似乎仅在命令需要创建子进程时才写入时间统计信息。因此

time sleep
有效,
time (echo hello)
也有效。例如,如果
time foo
是函数,则
foo
不会在 zsh 中输出计时信息,但如果
foo
是外部命令,则会输出计时信息。

© www.soinside.com 2019 - 2024. All rights reserved.