MagPI 11 Page 32

De Le French MagPi
Aller à : Navigation, rechercher

COLORISATION

du terminal



CONSOLE

EN COULEURS



Des couleurs grâce aux séquences d'échappement


W. H. Bell

Rédacteur MagPI


DIFFICULTÉ : DÉBUTANT


Parfois du texte brut dans un terminal n'est tout simplement pas excitant. Bien qu'il existe une bibliothèque GNU complète appelée ncurses, cet article se focalisera sur l'utilisation de simples séquences d'échappement pour contrôler les couleurs dans plusieurs langages.


Ces séquences agissent sur la couleur et le format du texte affiché dans une fenêtre de terminal. Cela implique que si du texte est envoyé dans un fichier et ensuite affiché avec less, le résultat aura une autre mise en page. L'effet dépend du type de terminal. Certains supportent 256 couleurs alors que d'autres ne gèrent que des codes couleur 8 bits. Comme ces derniers sont les plus répandus, cet article n'abordera que ces codes 8 bits.


En cas d'urgence, il peut être utile d'avoir un texte rouge clignotant. Par exemple en C :

#include <stdio.h>
int main() {
  char redBoldBlinking[] = "\033[0;1;5;31m";
  char defaultConsole[] = "\033[0m";
  printf("%s",redBoldBlinking);
  printf("NEED CHOCOLATE!\n");
  printf("%s",defaultConsole);
  return 0;
}

ou en Python :

redBoldBlinking = '\033[0;1;5;31m'
defaultConsole = '\033[0m'
print redBoldBlinking+"NEED
CHOCOLATE!"+defaultConsole

et en Bash :

redBoldBlinking='\033[0;1;5;31m'
defaultConsole='\033[0m'
printf $redBoldBlinking
echo "NEED CHOCOLATE!"
printf $defaultConsole

Les séquences d'échappement peuvent être utilisées pour contrôler les couleurs et la mise en forme du texte sur un écran de terminal. Cette technique peut de la même manière être utilisée avec d'autres langages. Le caractère \033[ est le CSI (Control Sequence Introducer). Celui-ci est employé pour transmettre différentes commandes à la fenêtre de terminal, comme effacer l'écran, faire un son ou déplacer le curseur. Les exemples de cet article contiennent \033[a;b;c;dm, où a=0 réinitialise le terminal, b=1 passe en gras, c=5 fait clignoter, d=31 définit la couleur en rouge et m clôture la séquence. defaultConsole contient juste 0, qui restaure les couleurs par défaut du texte. Les séquences permettent de changer juste une couleur ou le type de texte.

Couleurs

0 - noir
1 - rouge
2 - vert
3 - jaune
4 - bleu
5 - magenta
6 - cyan
7 - blanc

Styles

0 - affichage normal
1 - gras
2 - clair
3 - italique
4 - souligné
5 - clignotant
7 - vidéo inverse

Ajoutez 30 à la valeur de la couleur pour définir celle du texte et 40 pour l'arrière-plan.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils