Oui. Les terminaux ANSI prennent en charge les codes d'échappement ANSI . Chaque Control Sequence Introducer
( CSI
) code dans le format suivant:
ESC[<<<CODE>>>
Le caractère Ascii 27
(le ESC
caractère) ou 1b
en hexadécimal, suivi d'un crochet gauche, puis d'une lettre indiquant l'action à utiliser.
Notez qu'une liste de ;
paramètres séparés peut être fournie directement avant le <<<CODE>>>
paramètre.
Maintenant, les couleurs utilisent un sous-ensemble de CSI
codes, les Select Graphic Rendition
codes. Ce sont sous la forme:
ESC[<<<SGR>>>m
Le SGR
code est transmis en tant que paramètre le CSI
. Les SGR
codes 30-49 sont pertinents pour votre question . Les codes 30-39 définissent la couleur de premier plan. Les codes 40-49 définissent la couleur d'arrière-plan.
30 - Foreground Black
31 - Foreground Red
32 - Foreground Green
33 - Foreground Yellow
34 - Foreground Blue
35 - Foreground Magenta
36 - Foreground Cyan
37 - Foreground White
40 - Background Black
41 - Background Red
42 - Background Green
43 - Background Yellow
44 - Background Blue
45 - Background Magenta
46 - Background Cyan
47 - Background White
Les codes 38 et 48 sont des codes spéciaux. Ce sont ceux qui vous permettent d'utiliser des valeurs RVB. Le format de ceux-ci est:
ESC[38;2;<r>;<g>;<b>m (Foreground)
ESC[48;2;<r>;<g>;<b>m (Background)
Remarque: les utilisations alternatives incluent \x1b[<3 or 4>8;5;<web safe color index>m
. Avec cette utilisation, il existe un codage couleur complètement différent. Voir le lien en haut de cette réponse pour plus d'informations.
Les codes 39 et 49 définissent les couleurs de premier plan et d'arrière-plan à leurs valeurs par défaut, qui sont définies terminal par terminal.
En pratique, les couleurs 30-37 40-47 sont légèrement différentes de ce que disent leurs étiquettes.
0 - Black
1 - Darker Red
2 - Darker Green
3 - Dark/Yellow or Brown (varies between terminals)
4 - Dark Blue
5 - Dark Magenta
6 - Dark Cyan
7 - Light Grey
Pour obtenir des couleurs claires, vous utilisez le SGI pour le gras, 1
. Bold est un nom trompeur. Cela ne rend pas la police en gras. Cela augmente en fait la luminosité du texte. En gras, les couleurs deviennent:
0 - Dark Grey
1 - Bright Red
2 - Bright Green
3 - Bright Yellow
4 - Bright Blue
5 - Bright Magenta
6 - Bright Cyan
7 - White
Remarque: les deux derniers blocs de numéros de couleurs sont pertinents pour l'avant-plan et l'arrière-plan ( <index> + (30 or 40)
).
Pour supprimer tous les styles (retour au mode par défaut / normal), utilisez SGR
0.
CSI
les codes ne sont pas tous graphiques. Par exemple, ESC[2J
effacera votre terminal. ESC[<y>;<x>H
définit la position du curseur (indexé 1). Voir l'article wikipedia pour plus d'informations.
Remarque: pour les tester, utilisez echo -e
ou printf
.