formatage texte

formatage texte - Codes et scripts - Linux et OS Alternatifs

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

Reply

Marsh Posté le 30-03-2007 à 14:43:12   

Reply

Marsh Posté le 30-03-2007 à 15:38:13    

aquastar a écrit :

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

 

oué mais c'est pas simple à relire :o

 

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       0;30     Dark Gray     1;30
#Blue        0;34     Light Blue    1;34
#Green       0;32     Light Green   1;32
#Cyan        0;36     Light Cyan    1;36
#Red         0;31     Light Red     1;31
#Purple      0;35     Light Purple  1;35
#Brown       0;33     Yellow        1;33
#Light Gray  0;37     White         1;37

 


RESET_COLOR="\[\033[0;00m\]"

 

BLACK="\[\033[0;30m\]"
RED="\[\033[0;31m\]"
GREEN="\[\033[0;32m\]"
BROWN="\[\033[0;33m\]"
BLUE="\[\033[0;34m\]"
PURPLE="\[\033[0;35m\]"
CYAN="\[\033[0;36m\]"
LIGHT_GRAY="\[\033[0;37m\]"
DARK_GRAY="\[\033[1;30m\]"
LIGHT_RED="\[\033[1;31m\]"
LIGHT_GREEN="\[\033[1;32m\]"
YELLOW="\[\033[1;33m\]"
LIGHT_BLUE="\[\033[1;34m\]"
LIGHT_PURPLE="\[\033[1;35m\]"
LIGHT_CYAN="\[\033[1;36m\]"
WHITE="\[\033[1;37m\]"

 
 


Un exemple :
TOTO="$LIGHT_GREENkikoo$WHITEolol$RESET_COLOR"
echo $TOTO

 


Pratique pour le prompt donc :o

 

edit : tu dois avoir ce fichier sur ta distrib... on y trouve plein de séquences utiles/inutiles :D
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é.


Message édité par Xavier_OM le 30-03-2007 à 15:41:35

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 30-03-2007 à 16:48:29    

g essayé ta sol en shell mais ca ne marche pas!!!

Reply

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...


Message édité par Xavier_OM le 30-03-2007 à 17:48:45

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

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.


---------------
Au royaume des aveugles, les borgnes sont rois xo0
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed