Forum Linux.général Passer des séquences d'échappement à travers write ?

Posté par  .
Étiquettes : aucune
0
19
déc.
2007
Bonjour

Je voudrais pouvoir passer des séquences d'échappement (du genre \e[31m) pour écrire en couleur sur les terminaux d'autres utilisateurs.

J'avais trouvé un moyen de faire ça en redirigeant un printf (la fonction interne au shell bash) vers le fichier /dev/pts/xxx, correspondant au terminal où je voulais écrire, avec un code de ce genre :

printf '\e[31m mon message en rouge \e[0m' > /dev/`finger login_cible | grep "on pts" | cut -f 5 -d' '`

(cette ligne de commande est un peu plus simple que ce que je faisais puisqu'elle fait l'hypothèse que celui a qui j'écris n'est loggé qu'une seule fois)

Ca fonctionnait, parce que tous les fichiers dans /dev/pts/ étaient possédés par le groupe auquel appartiennent tous les utilisateurs. Mais maintenant, l'admin a changé quelque chose dans le système et les terminaux sont à présent possédés par le groupe 'tty'. Du coup il n'est plus possible de rediriger des printf (je n'ai plus le droit d'écrire).

write reste utilisable, mais ne permet pas d'utiliser les séquences d'échappement, que ce soit en les mettant directement, ou en lui connectant la sortie d'un printf avec un pipe. Existe-t-il un moyen de faire transmettre les séquences d'échappement à write ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.