Вперед цвета баш - PullRequest
       20

Вперед цвета баш

3 голосов
/ 03 сентября 2011

Есть ли способ экспортировать цвета вывода команды?

Давайте объясним это небольшим примером:

ls -alh --color=auto

напечатает цветное содержимое каталога, а

ls -alh --color=auto | cat

не будет печатать цвета. То, что я хочу знать, это трюк или инструмент, назовем его magic, который восстанавливает такие команды, как \033[1m, так что цвета доступны для последующей обработки:

ls -alh --color=auto | magic | cat

или

ls -alh --color=auto | magic >> file

Обновление:
Я использую ls только для этого примера, но хочу знать, существует ли общая возможность.

Ответы [ 3 ]

3 голосов
/ 03 сентября 2011
script outputfile command 

сделает свое дело.например:

script capture.txt ls --color=always
2 голосов
/ 03 сентября 2011

По сути, ls умный и обнаруживает, когда выход не идет к терминалу. Если вы хотите сказать, что это будет меньше, попробуйте ls --color=always.

Использование цвета для различения типов файлов отключено как по умолчанию, так и с помощью --color=never. При --color=auto ls выдает цветовые коды только тогда, когда стандартный вывод подключен к терминалу. Переменная окружения LS_COLORS может изменять настройки. Используйте команду dircolors для ее установки.

2 голосов
/ 03 сентября 2011

Поскольку цветовые коды на самом деле являются частью вывода ls, нет способа "восстановить" их (так как их нет вообще).

Но если вы используете ls --color=always, ls будет выводить цветовые коды даже при использовании в неинтерактивном режиме.

...