Salut aux experts de la console
Y a t'il y moyen de colorer stderr dans le terminal, histoire par exemple d'avoir stdout dans la couleur par défaut mais stderr dans une autre couleur, pour que le message d'erreur ressorte au milieu des banalités d'usages ?
Je sais que ça peux être faisable directement dans le programme mais je voudrais un comportement générique pour ne pas tout ré-écrire...
Merci aux experts
# zsh
Posté par jiyuu . Évalué à 1.
exec 2>>(while read line; do
print '\e[91m'${(q)line}'\e[0m' > /dev/tty; done &)
# bash
Posté par Link31 . Évalué à 1.
[^] # Re: bash
Posté par wismerhill . Évalué à 2.
"$@"
(man bash, section PARAMETERS)
# Puisque chacun y va de son script
Posté par Étienne . Évalué à 2.
En fait c'est une feinte car on échange 2 fois stderr et stdout, la première fois (fonction swapandcolor) on échange et on colorize, la deuxième fois on restore l'état initial.
#! /bin/sh
function swapandcolor()
{
"$@" 3>&2 2>&1 1>&3 | while read line
do
echo -e "\e[91m$line\e[0m"
done
}
swapandcolor "$@" 3>&2 2>&1 1>&3
Étienne
[^] # Re: Puisque chacun y va de son script
Posté par Étienne . Évalué à 2.
Désolé
Étienne
PS: très drôle le strip de geekscottes quand on se répond à soi-même.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.