Par défaut, votre UNIX préféré vous propose des couleurs qui ne permettent pas de mettre en évidence certaines informations. dans un affichage monochrome, comment mettre en évidence ce qui est important, ce qui ne l'est pas ou tout simplement avoir un affichage plus joli ?
La réponse est simple : en utilisant des couleurs. car contrairement à ce qu'on pourrait croire, UNIX peut afficher autre chose que du gris (en réalité du blanc) sur fond noir.
Pour gérer les couleurs sous UNIX, il faut considérer la couleur, le fond et l'effet
En ce qui concerne les couleurs, nous avons :
| Couleur | Texte | Fond |
|---|---|---|
| Noir | 30 | 40 |
| Rouge | 31 | 41 |
| Vert | 32 | 42 |
| Jaune | 33 | 43 |
| Bleu | 34 | 44 |
| Magenta | 35 | 45 |
| Cyan | 36 | 46 |
| Blanc | 37 | 47 |
pour l'effet, nous avons :
| Effet | Code |
|---|---|
| normal | 0 |
| gras | 1 |
| non gras | 21 |
| souligné | 4 |
| non souligné | 24 |
| clignotant | 5 |
| non clignotant | 25 |
| inversé | 7 |
| non inversé | 27 |
Pour l'effet, vous remarquerez que l'annulation de l'effet correspond au code de l'effet précédé d'un "2" (1-->21, 4-->24, etc.)
En fonction du système utilisé, les effets ne correspondent pas forcément au tableau ci-dessus
Pour utiliser une couleur dans un shell, il faut activer la couleur choisie :
printf '\033[A;B;Cm'
avec A=effet, B=texte, C=fond
Puis, à la fin, annuler les modifications pour revenir à l'état standard :
printf '\033[0m'
Si l'on ne désactive pas les modifications afin de revenir à l'état standard, les propriétés seront conservées. Une modification annule obligatoirement les propriétés antérieures. Celles-ci ne se cumulent pas.
Pour afficher le texte "Bonjour" en bleu, il suffit d'utiliser :
printf '\033[1;34;40m'
echo Bonjour
printf '\033[0m'
Le script suivant permet d'afficher toutes les possibilités disponibles de votre UNIX.