Просто позвоните 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) , чтобы получить более высокую точность. Это только время настенных часов, а не время процессора.