Как получить значение реального времени из команды "время"?
Я хотел бы сделать script, который выводит только значение реального времени из команды time, чтобы я мог отображать результаты. Например, time command
выводит
real 1m0.001s
user 1m0.000s
sys 0m0.001s
Я хочу написать script, который выводит
60.001
Как мне получить только значение реального времени из команды "время" в секундах?
Ответы
Ответ 1
time
может принимать необязательный параметр --format
или -f
, но вы должны использовать полный путь к команде времени, /usr/bin/time
$ /usr/bin/time -f "%e" sleep 3
3.00
Без пути он будет использовать команду time
оболочки, которая просто обрабатывает все аргументы как команду, поэтому вы получите -f: command not found
.
Ответ 2
Если вы используете Bash builtin time
, установите для переменной TIMEFORMAT
значение %R
:
$ TIMEFORMAT=%R
$ time sleep 1
1.022
Ответ 3
Запись в FAQ BASH № 32
Ответ 4
В качестве альтернативы используйте /usr/bin/time
или взгляните на аналогичный вопрос
Использование команды времени в bash script.
Ответ 5
Если вы пишете \time
вы принуждаете, чтобы не использовать построенный во времени bash. Таким образом, \time -f '%e' command
выполнена.