Kann ich das Terminal so konfigurieren, dass die stderr-Ausgabe in verschiedenen Farben angezeigt wird?

11

Ist es möglich, das Terminal in OS X so zu konfigurieren, dass die stderrAusgabe automatisch in einer anderen Farbe als die stdoutAusgabe eines Prozesses angezeigt wird?

Oder ist dies nur möglich, wenn der Prozess eine farbige Ausgabe ausgibt?

RobV
quelle
Leider ist ab 2019 die richtige Antwort, dass dies nicht mehr möglich ist . Beide hiliteund stderredsind nicht gewartet und kaputt und ich suche immer noch nach einer Problemumgehung.
Sorin
@sorin Ich habe gerade hiliteüber Homebrew installiert , es funktioniert immer noch wie erwartet (wäre überrascht, wenn nicht tatsächlich, es verwendet sehr grundlegende Funktionen, um seine Aufgabe zu erfüllen).
Nohillside
@sorin funktioniert stderredmöglicherweise nicht mehr, da es den Ort zu ändern scheint, von dem dynamische Bibliotheken geladen werden, was heutzutage durch SIP verhindert werden kann
nohillside

Antworten:

9

Es gibt keine einfache Lösung, aber dafür stehen mindestens einige Problemumgehungen zur Verfügung.

  • Sie können hilite installieren, indem Sie die einzelne C-Datei erstellen ( hilite.cin diesem Fall) oder verwenden brew install hilite( wenn Homebrew auf dem System installiert ist). Verwenden Sie es als hilite <command>.

  • Sie können den Befehl aus dieser Antwort bei Serverfehler verwenden ( commanddurch den Namen Ihres Skripts / Befehls ersetzen ), um stderr in Rot anzuzeigen ( für andere Farben beziehen Sie sich auf die Liste der ANSI-Escape-Sequenzen und ändern Sie die 31m im folgenden Befehl entsprechend):

    command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
  • Sie können stderred verwenden , um stderr in rot zu färben.

MK
quelle
3

Vielleicht möchten Sie einen Blick auf stderred werfen , mit dem Stderr in rot ausgegeben werden kann.

Es ist OSX-kompatibel und es gibt ein Handbuch zur Installation unter OSX.

Matthieu Riegler
quelle