bash - запись вывода после выполнения программы

bash - запись вывода после выполнения программы

Я знаю, что я могу перенаправить stdoutв файл перед запуском скрипта, но есть ли способ получить доступ ко всему выводу программы, которая уже запущена? Когда вывод слишком длинный, он обрезается окном терминала, и я не могу увидеть начальные отпечатки.

решение1

Есть несколько предложений:

  1. увеличьте количество сохраненных строк в окне терминала. На всех системах, где я могу, я обычно устанавливаю его на уровне около 10 000 строк (или максимально возможное значение меньше).
  2. (вероятно, немного более практично) Когда вы знаете, что вам может понадобиться захватить вывод, запустите новую оболочку bash и перенаправьте вывод в файл с помощью tee ( bash | tee record.txt). Любой вывод команд, запущенных в этой оболочке, будет помещен в файл "record.txt". К сожалению, он не захватывает ввод (включая вводимые вами команды) и приглашения оболочки.
  3. (лучше) Перед выполнением чего-либо, что вы считаете нужным сохранить, используйте script. Это начнет захватывать как ваш ввод, так и вывод программы. Когда вы закончите с вещами, выйдите из оболочки или нажмите Ctrl-D. Примечание:вывод, сгенерированный скриптом, не может быть записан, пока «скрипт» не будет завершен.

Связанный контент