Как получить цветной канал?

252
Lexib0y

Я использую FreeBSD с оболочкой csh. В качестве примера, в терминале / экране я получаю вывод цвета для ls (например, ls -lGs). Но когда я передаю его через more (например, ls -lGs | more), вывод не имеет цвета. Есть ли способ получить еще и цвет дисплея?

1
В Ubuntu `ls` имеет опцию` --color`, а `ls --color = всегда` сохраняет цвет при перенаправлении вывода. AFH 7 лет назад 0
Вы поставите меня на правильный путь, я сделаю ответ для сообщества. Lexib0y 7 лет назад 0

1 ответ на вопрос

1
Lexib0y

Я решил проблему в два этапа.

Сначала я устанавливаю переменную среды CLICOLOR_FORCE в .cshrc, чтобы принудительно выводить значения, отличные от TERM, для использования цветов, например:

CLICOLOR_FORCE 1 

more имеет параметр командной строки -R для вывода цветовых последовательностей.

 -R or --RAW-CONTROL-CHARS Like -r, but only ANSI "color" escape sequences are output in "raw" form. Unlike -r, the screen appearance is maintained cor- rectly in most cases. ANSI "color" escape sequences are sequences of the form: 

Эти два вместе дали мне желаемые результаты, поэтому

ls -lGs | more -R 

теперь отображает вывод в цвете.

Рад, что вы нашли решение: для вашего ответа ваш ответ не работает с моей конфигурацией Ubuntu / `bash` с GNU` ls`, но это далеко от FreeBSD / `csh`, так что это не удивительно. В моем случае у `more` нет опции` -R`, но она работает без. AFH 7 лет назад 0
Должен ли я добавить тег FreeBSD к вопросу? Это может работать на других системах ... Они должны быть достаточно ясными. Lexib0y 7 лет назад 0
Я не уверен, что посоветовать: я видел ссылку на `CLICOLOR_FORCE` в других системах, и мои комментарии должны помочь, когда ваше решение не работает. Я понятия не имею, сколько людей придет к этому решению, выполнив поиск по тегу, а не по названию, но я подозреваю, что не многие. AFH 7 лет назад 0

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