Как использовать команду времени в bash, суммировать sys + время пользователя и выводить ее как миллисекунды?

Команда time возвращает таблицу следующим образом:

real      0m1.607s
user    0m0.154s
sys 0m0.032s

Я запускаю это внутри скрипта оболочки. Каков самый простой способ обработать выход time, чтобы получить переменную $RUNTIME, которая содержит сумму user + sys в миллисекундах?

1
задан 7 February 2017 в 05:05

1 ответ

Сделайте это

Запустите свою команду, используя нижеприведенный скрипт, замените your_command.

$ ALL_TIME=`(time your_command) 2>&1 | grep -E "user|sys" | sed s/[a-z]//g`

теперь переменная ALL_TIME сохраняет два значения: `

$ echo $ALL_TIME
00.001 00.003

Теперь вам нужно суммировать значения. Использовать скрипт ниже

Не забудьте установить RUNTIME в ноль.

$ RUNTIME=0
$ for i in $ALL_TIME; do RUNTIME=`echo "$RUNTIME + $i"|bc`; done
$ echo $RUNTIME
.004

Источники

Как grep из времени

Как grep от времени

1
ответ дан 24 May 2018 в 07:46

Другие вопросы по тегам:

Похожие вопросы: