Por que não consigo usar o comando time no modo verbose sem especificar o caminho do comando inteiro?

1

Dado que ...

~$ which time
time is a shell keyword
time is /usr/bin/time

Por que isso funciona?

~$ /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

E por que isso não acontece?

~$ time --verbose ./some_script.sh 
--verbose: no se encontró la orden

real    0m0.124s
user    0m0.101s
sys 0m0.022s
    
por matiascelasco 21.08.2015 / 05:18

2 respostas

6

Quando você invoca um comando sem especificar o caminho para ele, outros alias do shell, função, incorporados com o mesmo nome serão invocados, em vez de comando. Esse comportamento foi definido pelo POSIX .

Para chamar o comando time externo, você pode usar o comando :

command time --verbose cmd
    
por 21.08.2015 / 05:41
3

Porque / usr / bin / time e o tempo embutido em seu shell são implementações completamente diferentes. Execute help time para obter o uso daquele construído em seu shell e, obviamente, man time para o em /usr/bin/time .

    
por 21.08.2015 / 05:34

Tags