Как отправить результат выполнения `time some_command` несколько раз в файл? [дубликат]

Если я запустил time uname -a | awk '{print substr ($ 3,1,9) "" $ 12}' , я получаю:

$ time uname -a | awk '{ print substr($3,1,9)" "$12 }'
4.15.0-70 x86_64

real    0m0.016s
user    0m0.003s
sys     0m0.016s
$ 

Я хотел бы выполнить указанную выше команду несколько раз и сохранить весь вывод в файл. Я попробовал

for i in {1..10}; do time uname -a | \
awk '{ print substr($3,1,9)" "$12 }' >> uname.txt; done

, но только 4.15.0-70 x86_64 десять раз отправляется в файл uname.txt . Вывод времени отправляется на экран при каждом запуске, а не в uname.txt .

Итак, как я могу получить результат времени , также записанный в uname.txt ?


Я могу использовать сценарий , и он работает, но вывод некрасиво:

(B[m(B[m(B[m4.15.0-70 x86_64

real    0m0.017s
user    0m0.013s
sys 0m0.007s
(B[m(B[m(B[m4.15.0-70 x86_64

real    0m0.015s
user    0m0.008s
sys 0m0.009s
(B[m(B[m(B[m4.15.0-70 x86_64

real    0m0.015s
user    0m0.008s
sys 0m0.008s

Или как изображение:

Part of script output as seen in Geany

Я знаю, что мог бы убрать это, если бы не было лучшего способа.

0
задан 13 December 2019 в 14:46

1 ответ

Можно попробовать следующее:

for i in {1..10}; do 
  { time uname -a | awk '{ print substr($3,1,9)" "$12 }'; } &>> uname.txt
done

Вывод:

4.15.0-54 i686

real    0m0,009s
user    0m0,007s
sys 0m0,000s
4.15.0-54 i686

real    0m0,016s
user    0m0,005s
sys 0m0,004s
4.15.0-54 i686

...
2
ответ дан 21 December 2019 в 23:34

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

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