时间选项不起作用

fry*_*day 4 linux bash time

我尝试测量执行时间并使用以下命令对其进行格式化:

time -f "%e" ./1 1000 1
-f: command not found

real    0m0.066s
user    0m0.044s
sys 0m0.023s
Run Code Online (Sandbox Code Playgroud)

但这样的命令有效:

/usr/bin/time -f "%e" ./1 1000 1
31245 212 443
0.00
Run Code Online (Sandbox Code Playgroud)

我试图确定另一个时间所在的位置,但所有显示都显示到 /usr/bin/time

which time
/usr/bin/time
Run Code Online (Sandbox Code Playgroud)

或者

whereis time
time: /usr/bin/time /usr/bin/X11/time /usr/include/time.h /usr/share/man/man7/time.7.gz /usr/share/man/man2/time.2.gz /usr/share/man/man1/time.1.gz
Run Code Online (Sandbox Code Playgroud)

或者

type -a time
time is a shell keyword
time is /usr/bin/time
Run Code Online (Sandbox Code Playgroud)

如何定义另一个时间所在的位置?

adr*_*der 7

bash shell 的用户需要使用显式路径才能运行外部时间命令,而不是 shell 内置变体。在时间安装在 /usr/bin 中的系统上,第一个示例将变为

   /usr/bin/time wc /etc/hosts
Run Code Online (Sandbox Code Playgroud)

或者

注意:某些 shell(例如 bash(1))具有内置的 time 命令,该命令提供的功能比此处描述的命令要少。要访问真正的命令,您可能需要指定其路径名(例如 /usr/bin/time)。

http://man7.org/linux/man-pages/man1/time.1.html

  • `\time` 和 `command time` 也将避免内置命令而支持外部命令。 (4认同)
  • 或者“时间”(带引号)或“命令时间”。顺便说一句,“time”不是内置的;我的意思是它不被视为命令;而是被视为命令。这是一个关键字。区别是微妙的`:D`,这就是为什么像`\time`或`'time'`或`command time`这样的技巧起作用的原因。它必须是一个关键字而不是内置函数,以允许管道和组等的计时。 (4认同)