在子 shell 中运行 `time` 时出现“zsh: command not found: time”

在子 shell 中运行 `time` 时出现“zsh: command not found: time”

几天前,我在 Ubuntu 12.10 64 位机器上安装了 ZSH(和 Oh-My-ZSH)。我只是尝试这样做:

time (time ls)

并得到这个错误:

zsh: command not found: time
( time ls; )  0.00s user 0.00s system 64% cpu 0.002 total

在我的 Mac 上的 ZSH 上也可以实现完全相同的功能。

我还尝试使用 运行 ZSH 而不加载任何配置文件zsh -f -d,但遇到了相同的错误。

这里可能有什么问题?


更多可能有帮助的输出:

➜  ~  type -a time
time is a reserved word
➜  ~  time (type -a time)
time is a reserved word
( type -a time; )  0.00s user 0.00s system 0% cpu 0.001 total
➜  ~  time (time)
zsh: command not found: time
( time; )  0.00s user 0.00s system 0% cpu 0.001 total
➜  ~  which time
time: shell reserved word
➜  ~  time (which time)
time: shell reserved word
( which time; )  0.00s user 0.00s system 0% cpu 0.001 total

答案1

time是zsh中的保留字。它仅在命令的开头被识别。它是一个保留字,而不是内置字,因为当您编写 时time foo | bar,它是计时的复合命令foo | bar,而不仅仅是foo

如果time不被识别为保留字,则将其解释为外部命令的名称。无论出于何种原因,您的系统都没有time安装命令。因此,像\time=time或第二个这样的命令time尝试time time调用不存在的time可执行文件,您会收到错误消息“命令未找到:时间”。

如果您希望能够运行time (time ls)(并不是说这是一个有用的命令),请安装该time软件包。它是 的依赖项ubuntu-standard,这表明您应该安装它。

相关内容