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

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

time vim test.txt

I get

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

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

time vim test.txt >> my.log

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

Vim: Warning: Output is not to a terminal

Перенаправление мешает vim, нуждающемуся в терминале.

Редактирование: одно решение может быть следующим:

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

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

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

/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 в 11:04

3 ответа

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

1
ответ дан 22 May 2018 в 20:06
  • 1
    Да, я также нашел об этом, см. Править выше. – muk.li 27 July 2017 в 20:32

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

1
ответ дан 18 July 2018 в 09:33

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

1
ответ дан 24 July 2018 в 19:22

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

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