#1 Le 14/05/2010, à 20:28
- gnuuat
Écrire en rouge les messages d'erreurs
Bonjour,
Je souhaiterai avoir en rouge tous les messages d'erreurs (donc tout ce qui est écrit sur stderr).
J'utilise zsh comme shell, mais je ne pense pas que ça pose de problèmes...
Jusqu'ici, les solutions que j'ai rencontré étaient ésotériques (http://www.zsh.org/mla/users/2004/msg00618.html), alors qu'il y en a une toute simple.
En effet, sur ma FreeBSD, avec tcsh, je fais un :
printf "\e[31m" > /dev/stderr
Et le tour est joué...
Malheureusement cela ne semble pas fonctionner sous ma Debian avec zsh...
Quelqu'un aurait une idée ?
Merci d'avance .
edit : je tombe vraiment sur des trucs bourrins du genre écrire un programme qui gère stderr O_o .
Mon idée me parait un peu plus propre : il suffit d'ouvrir la balise de la couleur rouge, sur stderr...
Dernière modification par gnuuat (Le 14/05/2010, à 20:33)
Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !
Hors ligne
#2 Le 14/05/2010, à 23:00
- Saito
Re : Écrire en rouge les messages d'erreurs
Salut,
si tu lis la conversation que tu as cité sur la ML zsh-users, tu vas tomber sur ces interventions :
- une bonne solution à ta demande avec un exec
- une réponse de Bart Schaefer (un des dév principal de zsh) qui indique que cette action (colorer stderr) ne devrait pas se faire au niveau du shell car trop complexe à mettre en place pour que ça fonctionne parfaitement (il parle de race condition dans un autre mail)
- une réponse de Vincent Lefevre qui indique qu'il a amélioré la première solution mais qui ajoute qu'il ne l'utilise pas suite à des problèmes rencontrés avec certaines applications qui utilise stderr comme interface (type les demandes interactives type « rm -i » ou « cp -i »)
Donc apparemment c'est pas conseillé.
Pour ta solution sous FreeBSD, j'imagine que c'est le /dev/stderr qui ne doit pas réagir de la même façon que sous Linux.
EDIT: voir peut-être ici, sauf que c'est un programme externe
Dernière modification par Saito (Le 14/05/2010, à 23:08)
Aku-Soku-Zan_Shinsengumi
Hors ligne
#3 Le 14/05/2010, à 23:14
- gnuuat
Re : Écrire en rouge les messages d'erreurs
Le problème de la résolution avec exec, c'est que stdout et stderr deviennent désynchronisés au bout d'un moment...
Dommage qu'il faille passer par un programme externe pour avoir une gestion d'erreur plus efficace visuellement
Bon, après un man stderr, il semblerait qu'avec Linux, soit non buffurisé, ce qui pourrait rejoindre ton explication (je ferais un man stderr sous ma FreeBSD pour voir si c'est aussi le cas là bas).
Bisouland : embrassez les tous !
Volez les points d'amour de vos adversaires en les embrassant, dans ce jeu gratuit par navigateur !
Hors ligne