Как сохранить вывод экрана командной строки в Linux после запуска программы?

Проблема, несомненно, связана с Windows. Он имеет дело с размером окна TTY -; Чем уже размер окна, тем больше комбинаций символов перевода строки(LF)и возврата каретки(CR)символов будет добавлено при вставке в соответствии с узостью окна. Такие комбинации представлены как CRLF.

Решение

Если я правильно понял сопровождающего Nano Бенно Шуленберга , Nano естественным образом преобразует CRLFкомбо в символы завершающих пробелов(^Jсимволы ).

Как предложил мне Бенно, добавление следующего кода в конец /etc/nanorcрешило эту проблему:

bind ^J enter main

Уточнение решения

С одной стороны, это отключит формирование ^Jсимволов, нарушающих код; с другой стороны, он добавит только символы перевода строки(LF), применимые в Linux (, в отличие от комбинаций Windows CRLF), к копируемым данным.

Только добавленные символы LFхороши тем, что они предотвращают отображение вставляемых данных в виде одной длинной строки текста.


1
19.08.2019, 23:14
1 ответ

Вы можете посмотретьscript(1)для регистрации выходных данных терминала. С его помощью будет создан файл машинописного текста, в котором сохраняется исходное форматирование всего, что отображается на терминале, включая escape-последовательности, командную строку и пробелы, среди прочего.

Его можно использовать, сначала вызвав команду script [file]как отдельную команду, а затем подключившись по ssh. Если вы не укажете файл, он будет называться typescriptи будет помещен в PWD.
После этого запустите свои команды, как обычно, и когда вы закончите и выйдете из ssh, введите exit, нажмите Ctrl-Dили используйте любой другой метод, который обычно закрывает ваш терминал; это закончится scriptвместо этого.

Затем эти машинописные файлы можно прочитать с помощью такой команды, как catилиless -r(Игнорирование предупреждения о двоичном файле ).

0
28.01.2020, 00:02

Теги

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