Есть ли способ избавиться от escape-кодов в выводе терминала?
Скажем, даже если сценарий отправляет эти коды, они игнорируются терминалом, а текст отображается как есть, без цветов, жирного шрифта и т. Д.
Мне нужно отобразить вывод терминала на странице HTML.
На данный момент я использую javascript для удаления escape-кодов, но это становится неуклюже, потому что я получаю вывод по символам, и мне приходится ждать, пока весь полученный контент не обновлен, что приводит к странным эффектам.
Программа может выводить на STDOUT все, что угодно, включая escape-коды, независимо от значения TERM. Однако установка TERM на «немой» поможет большинству программ, которые проверяют возможности терминала на предмет поддержки цвета.
Кроме того, некоторые программы перед форматированием своего вывода проверяют, что STDOUT указывает на интерактивный терминал, а не на канал или файл. Эти программы можно перенаправить в файл или передать по конвейеру через что-то еще, например cat
или less -r
.
Если вы сузите проблему до подмножества экранирований, те, которые меняют цвета, а не позицию курсора, вы должны иметь возможность проверить ESC, установить флаг, чтобы остановить отображение символов на странице, и сбросить флаг после «m».