Как вы добавляете, сколько времени требуется, чтобы сложить последовательность чисел в файл в Bash? - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь определить время, необходимое для добавления последовательности четных чисел и добавления результата в файл. У меня есть следующий код:

time sequence 12 2 684 | awk '{ sum += $1 } END { print sum }' >> NewFile

Я получаю общее число от добавления, но не время, необходимое для добавления. Время работает так, как я получаю:

real 0m0.002s
user 0m0.000s
sys  0m0.000s

Я пытался использовать скобки и фигурные скобки:

(time ls)

и

{time ls; }

Но все равно работает не дописывать.

1 Ответ

1 голос
/ 24 апреля 2020

time - это ключевое слово оболочки. time печатает со стандартной ошибкой.

Вы можете перенаправить стандартную ошибку на стандартный вывод всей вашей команды и перенаправить стандартный вывод на newFile. Это перенаправит вывод файлов awk и sequence, которые получают на стандартный вывод, в файл. Также обратите внимание, что здесь измеряется время всего конвейера, а не только команда seq.

{ time seq 10 | awk '{ sum += $1 } END { print sum }' ;} >> NewFile 2>&1 
...