formatage texte - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 30-03-2007 à 15:38:13
aquastar a écrit : Bonjour,
par ex lorsqu'une cmd a réussi je voudrais affichier le res de la commande suivi de [ok] en vert
|
oué mais c'est pas simple à relire
en gros une couleur c'est ca (si on met toutes les possibilités) :
"\[\033[44;1;31m\]"
Des exemples :
RED="\[\033[0;31m\]"
EMPHASIS_RED="\[\033[1;31m\]"
BACKGROUND_RED="\[\033[41m\]"
On remarque d'abord que c'est entre \[ \] pour protéger un peu
Puis il y a un caractère d'échappement, le \033 (ou \e)
Puis une séquence [A;B;Cm (avec des trucs plus ou moins optionnels)
A = le background
B = le style
C = la couleur
Pour le style :
0 normal, 1 pour light/emphasis, 4 pour underscore, 5 pour blink, 7 pour inverse, 8 pour concealed.
Pour les couleurs en gros ca donne (dixit mon bashrc) :
BLACK="\[\033[0;30m\]" |
Un exemple :
TOTO="$LIGHT_GREENkikoo$WHITEolol$RESET_COLOR"
echo $TOTO
Pratique pour le prompt donc
edit : tu dois avoir ce fichier sur ta distrib... on y trouve plein de séquences utiles/inutiles
http://fresh.t-systems-sfr.com/uni [...] tlseq2.txt
edit : Le style concealed je crois que c'est pour ne pas "echoer" le mot de passe que l'utilisateur est en train de taper.
Mais à part xterm et la vraie console je pense pas que ca soit très supporté.
Marsh Posté le 30-03-2007 à 17:25:54
Tente un echo -e ptet (man echo)
Je m'en sers que pour le prompt moi...
edit :
TOTO="$LIGHT_GREEN kikoo $RED olol $RESET_COLOR"
echo -e $TOTO
\[\] kikoo \[\] olo \[\]
les crochets sont ptet de trop dans ce cas, mais à mon avis ta solution n'est pas loin...
Marsh Posté le 04-05-2007 à 20:47:01
ya certains shell qui le prennent pas en compte ou certains serveur X, mais c'est assez rare.
Marsh Posté le 30-03-2007 à 14:43:12
Bonjour,
Comment faire pour formater du texte dans un script shell lorsque je fais un echo ?
par ex lorsqu'une cmd a réussi je voudrais affichier le res de la commande suivi de [ok] en vert
sinon cmd échoué [false] en rouge
est il possible de faire cela en shell ?
merci