Si vous jetez un œil à la norme ANSI ASCII , la partie inférieure du jeu de caractères (les 32 premiers) est réservée aux "caractères de contrôle" (parfois appelés "séquences d'échappement"). Ce sont des choses comme le caractère NUL, Life Feed, Carriage Return, Tab, Bell, etc. La grande majorité peut être émulée en appuyant sur la Ctrltouche en combinaison avec une autre touche.
La 27e \033
séquence (décimale) ou octale, ou 0x1b
séquence hexadécimale est la séquence d'échappement. Ce sont toutes des représentations de la même séquence de contrôle. Différents shells, langages et outils font référence à cette séquence de différentes manières. Sa Ctrlséquence est Ctrl- [, donc parfois représentée comme ^[
, ^
étant une main courte pour Ctrl.
Vous pouvez entrer des séquences de caractères de contrôle en tant que séquences brutes sur votre ligne de commande en les procédant avec Ctrl- v. Ctrl- vpour la plupart des shells et programmes arrête l'interprétation de la séquence de touches suivante et insère à la place dans sa forme brute. Si vous faites cela avec la Escapeclé ou Ctrl- velle s'affichera sur la plupart des shells comme ^[
. Cependant, bien que cette séquence soit interprétée, elle ne se coupera pas et ne se collera pas facilement, et peut être réduite à une séquence de caractères non contrôlée lorsqu'elle est rencontrée par certains protocoles ou programmes.
Pour contourner cela afin de le rendre plus facile à utiliser, certains utilitaires représentent la séquence "brute" soit avec \033
(par référence octale), une référence hexadécimale \x1b
ou par référence de caractère spécial \e
. C'est à peu près la même chose dans la manière qui \t
est interprétée comme un Tab- qui peut également être saisi via Ctrl- i, ou \n
comme une nouvelle ligne ou la Enterclé, qui peut également être saisie via Ctrl- m.
Alors quand Gilles dit:
27 = 033 = 0x1b = ^ [= \ e
Il dit décimal ASCII 27, octal 33, hex 1b, Ctrl- [et \e
sont tous égaux, cela signifie qu'ils se réfèrent tous à la même chose (sémantiquement).
Quand Demizey dit
^ [n'est qu'une représentation de ESCAPE et \ e est interprété comme un caractère ESCAPE réel
Il signifie sémantiquement, mais si vous appuyez sur Ctrl- v Ctrl- [c'est exactement la même chose que \e
, la séquence insérée brute sera très probablement traitée de la même manière, mais ce n'est pas toujours garanti, et il est donc recommandé d'utiliser le programme plus portable \e
ou 0x1b
ou en \033
fonction sur la langue / shell / utilitaire utilisé.