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