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?


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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.