Могу ли я настроить терминал, чтобы показать вывод stderr другим цветом

11

Можно ли настроить терминал в OS X для отображения stderrвывода автоматически в другом цвете, чем stdoutвывод из процесса?

Или это возможно только в том случае, если процесс выводит цветной вывод?

RobV
источник
К сожалению, с 2019 года правильный ответ таков, что это уже невозможно . И то, hiliteи другое stderredне поддерживается и сломано, и я все еще ищу обходной путь.
сорин
@sorin Я только что установил hiliteчерез Homebrew, он все еще работает, как и ожидалось (будет удивлен, если не на самом деле, он использует самые основные функции для выполнения своей задачи).
холме
@sorin stderredможет больше не работать, так как кажется, что из-за изменения местоположения загружаются динамические библиотеки, что может быть предотвращено SIP в наши дни
nohillside

Ответы:

9

Прямого решения не существует, но для этого есть как минимум несколько обходных путей.

  • Вы можете установить hilite, создав отдельный файл C ( hilite.cв данном случае) или используя brew install hilite(с установленным в системе homebrew ). Используйте это как hilite <command>.

  • Вы можете использовать команду из этого ответа на serverfault (заменить commandименем вашего скрипта / команды), чтобы stderr отображался красным (для других цветов обратитесь к списку управляющих последовательностей ANSI и измените значение 31m в приведенной ниже команде соответственно):

    command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
  • Вы можете использовать stderred для окрашивания stderr в красный.

MK
источник
3

Вы можете взглянуть на stderred, который позволяет выводить Stderr красным цветом.

Он совместим с OSX, и есть руководство по его установке на OSX.

Мэтью Риглер
источник