У меня есть инструмент, который выводит на стандартный вывод очень часто, без потери общности, скажем, что последовательность идет:
mysystem$ ./runme
Starting
Done
mysystem$
Теперь «runme» занимает некоторое время, поэтому мне бы очень хотелось, чтобы оболочка дала мне
mysystem$ somecommand ./runme
0952 Starting
1134 Done
mysystem$
Или какое-то приближение к этому ... есть идеи? Был бы счастлив с такими вещами, как запись в файл и так далее ...
РЕДАКТИРОВАТЬ люблю быстрый ответ до сих пор, но я должен был быть более ясным ...
Вполне возможно, что программа делает промежуточные заявления, поэтому я бы очень хотел, чтобы оболочка дала мне
mysystem$ somecommand ./runme
0952 Starting
0959 Somewaythough
1011 Mostly done
1134 Done
mysystem$
Но это вполне может быть невозможно ...
sleep 5
не может быть рассчитано так, как вы хотите. Пожалуйста, уточните, что это.Ответы:
ток
Желаемый
Медленная прога
TimeStamper
На самом деле, я удивлен, что это работает, я думал, что мне нужно что-то делать с буферизацией. YMMV
Использование
sprintf
для форматирования времени оставлено читателю в качестве упражнения.Для игроков в гольф
источник
Вы можете поставить
time
перед командой для выполнения, и это будет время выполнения.Более длинные команды делают для более интересных таймингов.
источник
Что о:
и с
sed
источник
В
bash
, вы можете комбинироватьDEBUG
ловушку иPROMPT_COMMAND
выводить время непосредственно до и после выполнения команды.Вот как это выглядит (повторяется второй вывод, как
PROMPT_COMMAND
команда trappable:источник