Получить время выполнения команды, которая имеет вывод в / dev / null - PullRequest
1 голос
/ 10 марта 2020

Я пытаюсь получить реальное время (в секундах) выполнения команды, но без вывода команды на печать. Моя проблема в том, что время интерпретирует «1> / dev / null 2> / dev / null», которые являются частью команды, как часть времени, поэтому у меня нет вывода.

Пример (команда, которую я хочу выполнить, более сложный):

/usr/bin/time -f "%e" -p ls 1>/dev/null 2>/dev/null

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

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

start=`date +%s`
command
end=`date +%s`
runtime=$((end-start))

Но просто сомневайтесь, можно ли это сделать с помощью команды time родным способом, я не знаю.

Ответы [ 2 ]

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

Один из способов сделать это независимо от оболочки:

/bin/time -o my_file.txt my_command 1>/dev/null 2>/dev/null

или

/bin/time -o /dev/tty my_command 1>/dev/null 2>/dev/null
0 голосов
/ 10 марта 2020

Как указано в BashFAQ # 32 , вы можете получить выходные данные из bash -строенной версии time (обратите внимание, что мы не , используя /usr/bin/time ниже):

{ time_result=$( { TIMEFORMAT='%R'; time ls 1>&3- 2>&4-; } 2>&1 ); } 3>&1 4>&2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...