Outils pour utilisateurs

Outils du site


sysadmin:linux:cli:sequences_controle_ansi

Séquences d'échappement ANSI

Les caractères d'échappement et les séquences d'échappement ( ou codes de contrôle ANSI1) ) permettent d'activer des fonctions ou des traitements standardisés coté terminal. Aujourd'hui les terminaux virtuels émulent ces traitements (changement de la police d'affichage, de la couleurs des caractères, émission de bips sonores, contrôle du curseur etc).

SGR : Séquence de sélection de rendu graphique

La séquence SGR 2) est la séquence de contrôle permettant d'indiquer au terminal quel rendu graphique utiliser. Plusieurs attributs peuvent être définis dans la même séquence séparés par le caractère ;. Ils restent actifs jusqu'à ce qu'une autre séquence de contrôle les remplace.

La séquence commence par le caractère ECHAP (033 en octal) suivi d'un crochet ouvrant [ et d'un ou plusieurs attributs (nombres) séparés par des points virgules ; et se termine par le caractère m qui active le traitement de la commande côté terminal.

La syntaxe aura donc la forme suivante:

\033[attr1;attr2;attr3;m

Valeurs des Attributs

Quelques codes usuels pour les attributs de séquence SGR

Valeur Commande
0 RAZ, affichage normal, tous les attributs off
1 gras, augmenter l'intensité, emphasis
2 diminuer l'intensité
3 italic, ou annuler clignoter
4 souligner
5 clignotement lent
6 Clignotement rapide
7 Iversion vidéo (echange couleurs arrière et avant plan
8 Masquer
. . .

La spécification originale ne proposait que 8 couleurs, les codes réservés sont les suivants:

Couleur code Arrière plan (BG) code Texte (FG)
Noir 30 40
Rouge 31 41
Vert 32 42
Jaune 33 43
Bleu 34 44
Magenta 35 45
Cyan 36 46
Gris 37 47

Exemples

La séquence SGR ci-dessous active l'écriture soulignée, Texte gris, fond noir et:

echo -e "\033[4;37;40m soulignez moi \033[0m"
 
# équivalents
echo -e "\E[4;37;40m soulignez moi \E[0m"
echo -e "\e[4;37;40m soulignez moi \e[0m"

Remarque: on utilise echo avec l'option -e pour interpréter le méta-caractère ECHAP préalablement échappé par le contre oblique.

Références

1)
American National Standard Institut
2)
Select Graphic Rendition
sysadmin/linux/cli/sequences_controle_ansi.txt · Dernière modification : 2022/05/15 11:10 de yoann