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