我想测量命令的执行时间并获得(对我而言)time命令的奇怪行为。
我调用time它就像在带有-for--format选项的联机帮助页的示例中提到的那样并得到一个command not found错误。似乎它认为-f是测量...的执行时间的命令
user@laptop:~$ time -f '%e' sleep 1
-f: Befehl nicht gefunden.
Run Code Online (Sandbox Code Playgroud)
然后我再次调用同一行,只是指定了time. 结果更改,按预期工作(wtf?):
user@laptop:~$ /usr/bin/time -f '%e' sleep 1
1.00
Run Code Online (Sandbox Code Playgroud)
现在我很困惑......甚至which无法帮助我:
user@pc:~$ which time
/usr/bin/time
Run Code Online (Sandbox Code Playgroud)
而且...如果我不使用选项它工作正常,即使没有完整路径:
user@laptop:~$ time sleep 1
real 0m1.003s
user 0m0.001s
sys 0m0.002s
Run Code Online (Sandbox Code Playgroud)
如果要指定选项,如何正确使用此命令?使用完整路径似乎有效,但看起来更像是错误的东西(或我不明白的东西)的不可靠的副作用?
编辑:我使用的是 Ubuntu 14.04 LTS(可信赖)
Bash有一个名为time. 因此,如果您只是输入time,它将使用内置的 shell,它没有像-f. 但是man time(其中谈到-f)将提供该/usr/bin/time程序的联机帮助页。因此,如果您想使用联机帮助页中描述的选项,您应该确保调用的是程序,而不是内置的 shell。实现此目的的一种方法是使用完整路径。
(恕我直言,这在 bash 中真的很丑)
有关更多信息,请参阅问题下方的链接。
| 归档时间: |
|
| 查看次数: |
3396 次 |
| 最近记录: |