Puis-je configurer le terminal pour afficher la sortie stderr dans différentes couleurs

11

Est-il possible de configurer le terminal sous OS X pour afficher stderrautomatiquement la sortie dans une couleur différente de la stdoutsortie d'un processus?

Ou est-ce possible uniquement si le processus génère une sortie colorée?

RobV
la source
Malheureusement, à partir de 2019, la bonne réponse est que ce n'est plus possible . Les deux hiliteet stderredsont unmaintained et brisé et je suis toujours à la recherche d' une solution de contournement.
sorin
@sorin Je viens d'installer hilitevia Homebrew, il fonctionne toujours comme prévu (serait surpris sinon en fait, il utilise des fonctionnalités très basiques pour accomplir sa tâche).
nohillside
@sorin stderredpeut ne plus fonctionner car il semble changer l'emplacement de chargement des bibliothèques dynamiques, ce qui peut être empêché par SIP de nos jours
nohillside

Réponses:

9

Il n'y a pas de solution simple, mais il existe au moins quelques solutions de contournement disponibles pour ce faire.

  • Vous pouvez installer hilite en créant le fichier C unique ( hilite.cdans ce cas) ou en utilisant brew install hilite(avec homebrew installé sur le système). Utilisez-le comme hilite <command>.

  • Vous pouvez utiliser la commande de cette réponse sur serverfault (remplacer commandpar le nom de votre script / commande) pour faire apparaître stderr en rouge (pour les autres couleurs, reportez-vous à la liste des séquences d'échappement ANSI et modifiez le 31m dans la commande ci-dessous en conséquence):

    command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
  • Vous pouvez utiliser stderred pour colorer stderr en rouge.

MK
la source
3

Vous voudrez peut-être jeter un œil à stderred qui permet de sortir Stderr en rouge.

Il est compatible OSX et il existe un manuel pour l'installer sur OSX.

Matthieu Riegler
la source