3

Некоторые программы имеют цветной вывод (например, grep или emerge в моей системе gentoo), но если их вывод передается по конвейеру, например, в less или в файл, цветной вывод отключается.

Тем не менее, я знаю, что less способен отображать цветной вывод, такие как

ccze -A < /var/log/emerge.log | less

отображать цветной текст Итак, у меня есть два вопроса здесь:

  • Можно ли "обмануть" другие цветные программы вывода, чтобы сохранить окраску?
    Я хотел бы сохранить цвета, если я сделаю, например:

    emerge -puND world | less
    
  • Как эти программы обнаруживают, что их выходные данные перенаправлены?

1 ответ1

3

Из stackoverflow - при обнаружении tty:

Большинство команд, которые выводят эти цветовые коды, явно проверяют, является ли stdout/stderr tty (используя команду isatty).

Из stackoverflow - при получении цветного вывода:

Одним из способов получения цветного вывода является команда script . Запущенный script запустит сеанс bash, где весь необработанный вывод будет записан в файл (по умолчанию с именем typcript).

Смотрите man script для получения дополнительной информации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .