Измерение времени интерактивной команды, названной из сценария

Принятие я хочу отследить времена, я трачу редактирование ряд файлов, и регистрируют их в файл, как я мог сделать от командной строки с помощью time команда:

time vim test.txt 

Я добираюсь

real    0m8.149s
user    0m0.056s
sys     0m0.008s

Отлично. Теперь, если я хочу добавить его вывод к файлу журнала,

time vim test.txt >> my.log

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

Vim: Warning: Output is not to a terminal

Перенаправление вмешивается в энергию, нуждающуюся в терминале. Каково было бы хорошее обходное решение здесь?

Править: Одно обходное решение могло быть следующим:

time gnome-terminal -x vim test.txt >> my.log

Который открывает новое окно терминала, в котором выполняется энергия. Я предпочел бы оставаться в том же окне, но мог также жить с этим обходным решением.

Править: Не вполне работал также, это, казалось, сделало в некотором тесте, в некотором другом это фон, таким образом не измеряя используемое время. В моем сценарии теперь я сделал что-то как этот:

/usr/bin/time -o tmpfile vim test.txt 
echo some stuff `cat tmpfile` some more stuff >>my.log
rm tmpfile

Кажется, работает.

Править: Это работает только, пока у каждого нет двух процессов с помощью того же tmpfile. Чтобы избежать, чтобы можно было использовать pid сценария, выполняемого как часть временного имени файла:

/usr/bin/time -o $$.tmp vim test.txt 
echo some stuff `cat $$.tmp` some more stuff >>my.log
rm $$.tmp
0
задан 31 July 2017 в 01:04

1 ответ

Который time Вы используете? Встроенный Bash или тот в /usr/bin/time? Если Вы используете /usr/bin/time (и читать man time) Вы найдете, что можно зарегистрировать вывод в файл, отформатировать вывод любым путем, Вам нравится.... Встроенный Bash time намного менее способно.

1
ответ дан 2 November 2019 в 21:06

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

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