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