Czy mogę skonfigurować terminal, aby wyświetlał wyjście stderr w innym kolorze?

11

Czy można skonfigurować terminal w OS X, aby stderrautomatycznie wyświetlał dane wyjściowe w innym kolorze niż stdoutdane wyjściowe z procesu?

Czy jest to możliwe tylko wtedy, gdy proces generuje kolorowe wydruki?

RobV
źródło
Niestety, od 2019 roku poprawna odpowiedź jest taka, że nie jest już możliwa . Zarówno hilitei stderredsą źle utrzymanym i złamane, a ja nadal poszukuje obejścia.
sorin
@sorin Właśnie zainstalowałem hiliteprzez Homebrew, nadal działa zgodnie z oczekiwaniami (byłbym zaskoczony, gdyby nie faktycznie, używa bardzo podstawowej funkcjonalności, aby wykonać swoje zadanie).
nohillside
@sorin stderredmoże już nie działać, ponieważ wydaje się, że zmienia lokalizację, z której ładowane są biblioteki dynamiczne, czemu może zapobiec SIP nowaydays
nohillside

Odpowiedzi:

9

Nie ma prostego rozwiązania, ale istnieje co najmniej kilka obejść tego problemu.

  • Możesz zainstalować hilite , budując pojedynczy plik C ( hilite.cw tym przypadku) lub używając brew install hilite(z zainstalowanym systemem homebrew ). Użyj go jako hilite <command>.

  • Możesz użyć polecenia z tej odpowiedzi w przypadku błędu serwera (zastąp commandnazwę skryptu / polecenia), aby stderr pojawił się na czerwono (w przypadku innych kolorów zapoznaj się z listą sekwencji ucieczki ANSI i odpowiednio zmień 31m w poniższym poleceniu):

    command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
  • Możesz użyć stderred, aby pokolorować stderr na czerwono.

MK
źródło
3

Możesz rzucić okiem na stderred, który pozwala wypisać Stderr na czerwono.

Jest kompatybilny z OSX i jest instrukcja instalacji na OSX.

Matthieu Riegler
źródło