Basta ligar times
sem argumentos ao sair do seu script.
Com ksh
ou zsh
, você também pode usar time
. Com zsh
, time
também fornecerá a hora do relógio de parede, além da hora da CPU do usuário e do sistema .
Para preservar o status de saída do seu script, você pode:
ret=$?; times; exit "$ret"
Ou você também pode adicionar uma armadilha em EXIT
:
trap times EXIT
Dessa forma, os horários serão chamados sempre que o shell sair e o status de saída for preservado.
$ bash -c 'trap times EXIT; : {1..1000000}'
0m0.932s 0m0.028s
0m0.000s 0m0.000s
$ zsh -c 'trap time EXIT; : {1..1000000}'
shell 0.67s user 0.01s system 100% cpu 0.677 total
children 0.00s user 0.00s system 0% cpu 0.677 total
Observe também que todos bash
, ksh
e zsh
tem uma $SECONDS
variável especial que automaticamente é incrementado a cada segundo. Em ambos zsh
e ksh93
, essa variável também pode ser feita de ponto flutuante (com typeset -F SECONDS
) para obter mais precisão. Esta é apenas a hora do relógio de parede, não da CPU.