Por que o caminho completo para / usr / bin / time afeta a saída?

1

Estou executando um comando muito simples:

[tester@centos-lvm ~]$ time cal > /dev/null

real    0m0.001s
user    0m0.000s
sys     0m0.001s

No entanto, se eu especificar o caminho completo para o executável time , recebo uma saída diferente:

[tester@centos-lvm ~]$ /usr/bin/time cal > /dev/null
0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 928maxresident)k
0inputs+0outputs (0major+272minor)pagefaults 0swaps

Acredito que quando executo time (sem caminho), o /usr/bin/time é realmente executado:

[tester@centos-lvm ~]$ which time
/usr/bin/time

man time informa que há dois formatos de saída diferentes, a opção -p escolhe entre eles. Mas eu não especifiquei nenhuma opção! Eu verifiquei aliases, nada sobre o tempo.

Esse comportamento é bastante inesperado e muito estranho. Alguém poderia explicar por que e como isso acontece?

    
por lesnik 03.05.2017 / 09:45

1 resposta

3

Quando você usa time sem um caminho, é provável que você use um utilitário que é fornecido a você por um shell embutido (consulte o manual do seu shell específico). Ao especificar um caminho, você definitivamente está usando um utilitário externo.

Esses dois podem diferir em sua implementação e em qual saída eles produzem.

    
por 03.05.2017 / 10:36