时间命令的非法选项

bas*_*117 5 macos shell time gnu

我在使用 time 命令时遇到一些问题time。它工作正常,但由于时间在输出中给出了 3 个数字(真实的、用户的和系统的),我正在寻找如何只获取用户时间。我发现很多帖子都说要使用/usr/bin/time -f "%U",但我收到此错误:

/usr/bin/time: illegal option -- f
usage: time [-lp] command.
Run Code Online (Sandbox Code Playgroud)

-f我打字的时候也找不到这个选项man time

我试图跳过它并写道:/usr/bin/time "%U"然后我明白了%U: No such file or directory

我已经安装了 GNU-time 但没有任何改变。有什么问题吗?

Mar*_*ell 5

有几个time命令...


如果你运行:

type time
Run Code Online (Sandbox Code Playgroud)

并得到:

time is a shell keyword
Run Code Online (Sandbox Code Playgroud)

这意味着您正在使用的bash内置 shell 命令不接受您想要的选项。help与所有 shell 内置命令一样,此命令的 可以使用:

help time
Run Code Online (Sandbox Code Playgroud)

如果你运行:

type time
Run Code Online (Sandbox Code Playgroud)

并得到:

time is hashed (/usr/bin/time)
Run Code Online (Sandbox Code Playgroud)

这意味着您正在使用 Apple 提供的(类似 BSD)time命令,该命令不接受您想要的选项。这也是手册页中描述的内容。


如果您gnu-time使用homebrew安装,则需要运行:

gtime
Run Code Online (Sandbox Code Playgroud)

除非您没有像使用homebrewPATH那样将其设置为 include ,在这种情况下您需要运行:/usr/local/bin

/usr/local/bin/gtime
Run Code Online (Sandbox Code Playgroud)

并查看手册页:

man gtime
Run Code Online (Sandbox Code Playgroud)

如果您想始终使用该命令time代替gtime,并且我不建议这样做,您需要运行:

brew info gnu-time
Run Code Online (Sandbox Code Playgroud)

并阅读它关于设置的内容:

PATH =“/ usr / local / opt / gnu-time / libexec / gnubin:$ PATH”