`time echo`没有输出

son*_*gyy 6 zsh time oh-my-zsh

我正在使用 Mac,我正在尝试为命令执行计时。

如果我做

time echo
Run Code Online (Sandbox Code Playgroud)

它没有任何输出

但如果我这样做

time ls
Run Code Online (Sandbox Code Playgroud)

它确实给了我时间函数的输出

知道为什么会这样吗?

更新:原来是因为我正在使用 zsh,并且oh-my-zsh已安装。它在 bash 中运行良好,但在 zsh 中没有输出。知道为什么吗?

mur*_*uru 14

在 zsh 中,time关键字对内置函数(或其他类似的 shell 内部结构)没有影响。从这个邮件列表帖子

附加说明:应用于在当前 shell 中执行的任何构造的时间内置函数将被静默忽略。因此,尽管在 time 关键字之后立即放置一个开始的卷曲或重复循环等在语法上是可以的,但您将无法获得计时统计信息。您必须改用括号来强制使用子shell,然后对其进行计时。

$ time echo

$ time (echo)

( echo; )  0.00s user 0.00s system 51% cpu 0.001 total
Run Code Online (Sandbox Code Playgroud)