[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: stderr en rouge dans un terminal



Selon ismael@x.net:

> > int main(void)
> > {
> > 	fprintf(stdout,"bonjour");
> > 	fprintf(stderr,"au revoir");
> > 	return 0;
> > }
> >
> > Là, je voudrais que gnome-terminal affiche "bonjour" normalement, et "au
> > revoir" en rouge par exemple.
>
> réponse en une ligne :
> fprintf (stderr, "\033[31mau revoir");
>
> Pour être plus clair, les terminaux, au moins sous GNU/Linux, sont
> compatibles VT100 (ou postérieur). Du coup, on peut utiliser les codes
> d'échappement qui permettent, entre autres, de spécifier des couleurs, de
> positionner le curseur sur l'écran, ...
Bon, alors je me suis mal exprimé... Dans le premier message, je ne parlais pas
de programmation et là, ça a eu l'effet inverse.

Je sais afficher en couleur, je connais les codes ANSI et Ncurses :). Mais on
objectif n'est pas de savoir afficher une couleur dans un terminal à partir
d'un de mes programmes, ça ok.

Mon but est de faire que le terminal affiche tout ce qui est envoyé dans stderr
(que ce soit pas un script ou un programme système ou n'importe quoi d'autre,
c-a-d pas forcément du code à moi) s'affiche dans une couleur différente de
stdout. Des idées ?

(Pour les connaisseurs, la console d'eclipse le fait par défaut par exemple).

Ça me donne une idée tiens puisque vous parlez de codes ANSI, je regarderais ce
soir s'il n'existe pas un système de callback pour bash : peut-être qu'il est
possible d'automatiser le traitement de stdout et stderr par un programme
personnalisé. Auquel cas, il serait alors très simple d'écrire un petit prog
qui passe stderr en rouge avec une séquence ANSI...

Merci.
--
Baptiste <Batmat> Mathus
Baptiste at Mathus point org
http://batmat.net
---------
You want to use GNU/Linux or Windows ?
You want to spend time or money ?



Reply to: