Просто позвоните times
без аргументов при выходе из сценария.
С ksh
или zsh
вы также можете использовать time
вместо. С zsh
, time
также даст вам время настенные часы в дополнение к времени процессора пользователя и системы .
Чтобы сохранить статус выхода вашего скрипта, вы можете сделать это:
ret=$?; times; exit "$ret"
Или вы также можете добавить ловушку EXIT
:
trap times EXIT
Таким образом, время будет вызываться всякий раз, когда оболочка выходит и статус выхода будет сохранен.
$ 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
Также обратите внимание , что все bash
, ksh
и zsh
имеют $SECONDS
специальную переменную , которая автоматически инкрементируется каждый второй. В обоих случаях zsh
и ksh93
эта переменная также может быть сделано с плавающей точкой (с typeset -F SECONDS
) , чтобы получить более высокую точность. Это только время настенных часов, а не время процессора.