Мое предложение будет (немного изменено, так как у меня нет вашей настройки 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
.
Попробуйте это,
cal 2020 | sed 's/ \([0-9]\) /\1 /g;s/ \([0-9]\)$/\1/g;s/ /,/g;s/,,,/,/g' > 2020.csv