Je ne suis pas une application console avancée ** Il m'est arrivé de connaître CSI pendant que je faisais diverses choses, alors je l'ai écrit.
Un type de ** séquence d'échappement **.
La première chose qui vous vient à l'esprit lorsque vous entendez le mot «échapper» est «\ n».
\ n est un échappement très simple qui signifie un saut de ligne dans le système Unix, mais cette fois nous utiliserons une expression spéciale un peu plus compliquée.
À propos, CSI est un acronyme pour * Control Sequence Introducer *.
Typiques --Déplacez le curseur --Effacer l'écran (Effacer tout avant le curseur et tout supprimer après le curseur)
** here ** a tous les types et méthodes de contrôle.
~~ ** Bash ne semble pas s'échapper facilement ** (Reference). ~~
[Ajout: informations de commentaire]
Il semble que vous puissiez vous échapper avec Bash. Si vous ajoutez l'option -e, telle que ʻecho -e`, l'échappement sera appliqué.
En outre, le lien ci-dessus était une autre discussion. Nous corrigerons.
Maintenant, dans l'exemple précédent, nous avons montré \ n pour couper une ligne.
Puisque CSI peut contrôler plusieurs choses, le code de contrôle n'en est pas un, mais il existe un préfixe pour reconnaître qu'il s'agit de CSI.
C'est ** \ e [ ** ou ** \ 033 [ ** ou ** \ 0x1b [ **.
[Une addition]
Je pensais que bash ne pouvait pas s'échapper, juste \ e [ ne le soutenait pas. C'est possible avec \ 033 [.
Puisque e est un type de caractère, 033 est un nombre octal et 0x1b est un nombre hexadécimal, c'est essentiellement le même, mais e est plus facile.
CSI est une sorte de séquence d'échappement [^ 1] au sens strict. L'insertion de \ e au début vous indique le début de la séquence d'échappement, et [ vous indique qu'il s'agit de CSI.
Le contrôle de CSI change en fonction de ce que vous écrivez après cela.
| Caractère de contrôle (aucun espace requis) | mouvement | 
|---|---|
| n A | n lignes(1 ligne si non spécifié)Relevez le curseur | 
| n B | n lignes(1 ligne si non spécifié)Abaissez le curseur | 
| n C | n caractères(1 caractère sauf indication contraire)Avancez le curseur | 
| n D | n caractères(1 caractère sauf indication contraire)Déplacer le curseur en arrière | 
| n E | Déplacez le curseur sur n lignes(1 ligne si non spécifié)Alignez-vous sur le début ci-dessous | 
| n F | Déplacez le curseur sur n lignes(1 ligne si non spécifié)Ajuster au début du haut | 
| n G | Placez le curseur sur le nième caractère de la ligne courante(1er caractère si non spécifié)Correspondre | 
| n; m H | Placez le curseur sur la nième ligne, caractère m(1 caractère par ligne sauf indication contraire:en haut à gauche)Correspondre | 
| n J | Effacer l'écran (les détails seront décrits plus tard) | 
| n K | Supprimer la ligne (les détails seront décrits plus tard) | 
| n S | n lignes (1 ligne si non spécifié) Faites défiler l'écran pour continuer | 
| n T | n lignes (1 ligne si non spécifié) Faire défiler l'écran en arrière | 
| n L | Insérer n lignes (1 ligne si non spécifié) avant la ligne où se trouve le curseur | 
| n M | Supprimer n lignes (1 ligne si non spécifié) de la ligne où se trouve le curseur | 
| n P | Supprimer n caractères (1 caractère si non spécifié) de la position du curseur | 
| n P | Remplacez n caractères (1 caractère si non spécifié) par des espaces à partir de la position du curseur | 
| n ` | Déplacer le curseur sur le nième caractère de la ligne courante (1er caractère si non spécifié) | 
| n a | Avance le curseur de n caractères (1 caractère si non spécifié) | 
| n d | Élever le curseur de n lignes à la position actuelle (1 ligne si non spécifié) | 
| n m | SGR(Select Graphic Rendition)Spécifiez les paramètres (les détails seront décrits plus tard) | 
| s | Se souvenir de la position actuelle du curseur | 
| u | Appeler la position mémorisée du curseur | 
| > 3; a; b; c; d J | (b, a)De(d, c)Effacer le rectangle jusqu'à | 
| > 3; a; b; K | Effacer les caractères a à b sur la ligne courante | 
| n | comportement | 
|---|---|
| Non spécifié | Effacer derrière le curseur jusqu'au début de l'écran (ligne) | 
| 0 | Effacer derrière le curseur jusqu'au début de l'écran (ligne) | 
| 1 | Effacer avant le curseur jusqu'à la fin de l'écran (ligne) | 
| 2 | Effacer tout l'écran (ligne) | 
| n | sens | 
|---|---|
| Aucun | Réinitialisation des paramètres | 
| 0 | Réinitialisation des paramètres | 
| 1 | Audacieux | 
| 2 | Impression légère (pas largement prise en charge) | 
| 3 | Oblique (pas largement pris en charge, inversé)(n=7)Peut également être) | 
| 4 | Souligner | 
| 5 | Clignotant: 150 fois/Dans quelques minutes | 
| 6 | Clignotement rapide: 150 fois/Plus d'une minute (pas largement pris en charge) | 
| 7 | Affichage inversé: les couleurs de premier plan et d'arrière-plan sont permutées | 
| 8 | Masquer les caractères (pas largement pris en charge) | 
| 9 | Ligne d'annulation (pas largement prise en charge) | 
| 10 | Police par défaut | 
| 11–19 | (n-10)Utilisez la deuxième police alternative | 
| 20 | Police de fracture(Principalementnonprisencharge) | 
| 21 | Gras désactivé (pas largement pris en charge),Soulignement double (presque non pris en charge) | 
| 22 | Restaurer la couleur et l'accentuation (gras / clair) | 
| 23 | Restaurer l'inclinaison et la fracture | 
| 24 | Annuler le soulignement | 
| 25 | Annuler le clignotement | 
| 28 | Afficher le texte | 
| 29 | Effacer le barré | 
| 30–37 | Couleur de premier plan (essentiellement la couleur du texte)(n-30)Changer en numéro (le numéro de couleur sera décrit plus tard) | 
| 38 | Expansion des paramètres de couleur de premier plan. \e[38;5;nVous pouvez spécifier l'index de couleur avec(0...255)。\e[38;2;r;g;bRVB peut être réglé avec(0 chacun...255)。 | 
| 39 | Réinitialiser la couleur de premier plan | 
| 40–47 | Couleur de l'arrière plan(n-40)Changer en numéro (le numéro de couleur sera décrit plus tard) | 
| 48 | Expansion de la mise en scène de l'arrière-plan. \e[48;5;nVous pouvez spécifier l'index de couleur avec(0...255)。\e[48;2;r;g;bRVB peut être réglé avec(0 chacun...255)。 | 
| 49 | Réinitialiser la couleur d'arrière-plan | 
Quelle est cette tempête non prise en charge ...
| nombre | Couleur | 
|---|---|
| 0 | noir | 
| 1 | rouge | 
| 2 | vert | 
| 3 | Jaune | 
| 4 | Bleu | 
| 5 | Magenta | 
| 6 | cyan | 
| 7 | blanc | 
Cela ressemble à ceci lorsque vous affichez approximativement chaque couleur.

Lors du réglage du SGR
echo "\e[31mred\e[m"
Si vous le faites, il sera affiché en rouge en rouge.
Aussi,
echo "\e[31;43mred&yellow\e[m"
Si vous le faites, il affichera «rouge et jaune» avec un fond jaune de caractère rouge.
Vous pouvez définir plusieurs options à la fois en tapant les options séparées par ; de cette manière.
** Assurez-vous de désactiver l'option à la fin avec \ e [m ou \ e [0m" pour éviter un comportement inattendu après la sortie de CSI. ** **
[^ 1]: Strictement parlant, \ n n'est pas une séquence d'échappement. Dans un sens étroit, il fait référence à une chaîne d'octets de contrôle commençant par ʻESC (0x1B) `.
Recommended Posts