Назначить результат измерения цикла for с помощью /usr/bin/time в переменную

Попробуйте, это в гостях. eject / dev / sr0 ошибок нет? Под root или с помощью sudo mkdir / media / cdrom с расширенными правами mount / dev / sr0 / media / cdrom

`yum install dkms kernel-devel` 

yum groupinstall "Development Tools" , если не installt.

источники Wiki centos

2
07.08.2017, 14:39
2 ответа

Я понял, я тоже должен заключить команду в круглые скобки,

mytime=$(time (for i in {1..3}; do curl -s -w '\n' -XPOST -H 'Content-Type: application/x-www-form-urlencoded' --data-urlencode query='select distinct ?Concept where {[] a ?Concept} LIMIT 100' http://143.233.226.61:443/sparql > /dev/null; done) 2>&1 1>/dev/null)
0
27.01.2020, 22:18

Мое предложение будет (немного изменено, так как у меня нет вашей настройки curl/HTTP):

$ t=$(TIMEFORMAT=%R bash -c 'time for i in {1..3}; do sleep $((RANDOM % 5)); done' 2>&1)
$ avg=$(bc <<< "scale=3; $t/3")
$ echo $avg # YMMV
2.667

Так как timeявляется встроенным -bash, нам нужно поместить перенаправление stderr"снаружи" вызова времени; вот почему я обернул основную часть bash -c....

Вам не нужно устанавливать TIMEFORMAT каждый раз в цикле; просто поместите его в среду для вызова bash/time.

Обратите внимание, что арифметика оболочки основана на целых числах -, поэтому для значений с плавающей запятой -используйте что-то вроде bc. В моем выводе timeбыло 3 знака после запятой, так что я также попросил bc.

1
27.01.2020, 22:18

Теги

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