Используя / usr / bin / time и перенаправить вывод в файл? - PullRequest
1 голос
/ 23 марта 2012

Итак, я использую / usr / bin / time для измерения своей программы и выполняю несколько прогонов одной и той же программы, чтобы получить результаты. Проблема одновременного выполнения нескольких операций и использования / usr / bin / time заключается в том, что он будет многократно распечатывать этот гигантский кусок информации, и я не хочу прокручивать, копировать и вставлять результаты в текстовый файл. Я бы предпочел, чтобы командная строка сделала это для меня.

Первоначально я думал, что команда была что-то вроде:

/usr/bin/time -v sudo ./programname >> timeoutput.txt

Но, насколько я знаю, >> используется для stdout, поэтому в этом случае он не будет работать.

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Если вы просто хотите добавить в файл стандартную ошибку из time (которая используется для вывода информации о времени), вы можете использовать:

( time sleep 1 ) 2>>timeoutput.txt

Бит 2>>... перенаправляет стандартную ошибку , а не стандартный вывод, а () гарантирует, что перенаправление применяется к time, а не к выполняемой вами команде.

Конечно, это не остановит вывод ошибок из программы, которую вы синхронизируете, в файл, если вы хотите гарантировать это, вам нужно что-то вроде:

( time ( sleep 1 2>/dev/null ) ) 2>>timeoutput.txt

Это гарантирует, что никакие выходные сообщения об ошибках не поступят, чтобы помешать выводу ошибок time.

В приведенных выше примерах я использовал sleep 1 для команды, но вы должны просто заменить ее любой командой, которую вы пытаетесь выполнить.

0 голосов
/ 31 октября 2013

На самом деле время и / usr / bin / time могут отличаться.Некоторые оболочки имеют встроенную функцию времени, обратите внимание, как следует из моего ksh на Red Hat:

/ usr / bin / time date Чт 31 октября 12:57:04 EDT 2013 0.00user 0.00system 0: 00.00elapsed% CPU (0avgtext + 0avgdata 2864maxresident) k 0 входов + 0 выходов (0 основных + 227 минут) pagefaults 0swaps

дата времени Чт 31 октября 12:57:11 EDT 2013

реальный 0m0,00s пользователь 0m0.00s sys 0m0.00s

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...