Bash время команды выводится в .txt - PullRequest
0 голосов
/ 28 марта 2020

Здравствуйте, у меня есть сценарий bash, который я создал, намереваясь измерить истекшее время, процент загрузки процессора и использование памяти сценарием download_test.sh с выводом в файл .txt с желаемым выводом, например:

Elapsed time: 1263.75s
Memory usage: 62916 KB
CPU usage: 0%

Сценарий, который выполняет это, выглядит следующим образом:

#!/bin/bash
echo 'RESULTS' >> log.txt
{ /usr/bin/time -f 'Elapsed time: %es\nMemory usage: %M KB\nCPU usage: %P' bash download_test.sh  1 ; }  2>> log.txt

Однако процесс загрузки терминала также направляется в файл .txt, т.е.

RESULTS

Downloading:  95%|#########5| 827M/870M [00:00<?, ?B/s]
Downloading:  95%|#########5| 828M/870M [00:00<00:11, 3.68MB/s]
...
Elapsed time: 14.67s
Memory usage: 62592 KB
CPU usage: 0%

Я плохо знакомы с использованием stderr и stdout, поэтому я их неправильно понял и как мне решить эту проблему?

1 Ответ

0 голосов
/ 29 марта 2020

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

awk '/Elapsed/,/CPU/'

Попробуйте это

#!/bin/bash
echo 'RESULTS' >> log.txt
{ /usr/bin/time -f 'Elapsed time: %es\nMemory usage: %M KB\nCPU usage: %P' bash download_test.sh  1 ; } | awk '/Elapsed/,/CPU/' 2>> log.txt

...