鉴于...
~$ which time
time is a shell keyword
time is /usr/bin/time
为什么这有效?
~$ /usr/bin/time --verbose ./some_script.sh
Command being timed: "./some_script.sh"
User time (seconds): 0.00
System time (seconds): 0.01
Percent of CPU this job got: 51%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.03
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 4572
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 1
Minor (reclaiming a frame) page faults: 1548
Voluntary context switches: 3
Involuntary context switches: 7
Swaps: 0
File system inputs: 48
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
为什么这不呢?
~$ time --verbose ./some_script.sh
--verbose: no se encontró la orden
real 0m0.124s
user 0m0.101s
sys 0m0.022s
答案1
当您调用命令而不指定其路径时,将调用其他同名的 shell 别名、函数、内置函数,而不是命令。这种行为是由 POSIX 定义。
为了调用外部time
命令,您可以使用命令:
command time --verbose cmd
答案2
因为 /usr/bin/time 和 shell 中内置的时间是完全不同的实现。运行help time
以获取 shell 中内置的用法,显然man time
是/usr/bin/time
.