Je sais que pour imprimer un texte coloré en utilisant l'écho, par exemple la couleur rouge, le code est: echo -e "\e[1;31m This is red text \e[0m"
et je sais que dans cet exemple, 31 est le code de la couleur rouge et le nombre d'autres couleurs est:
Black 0;30 Dark Gray 1;30
Blue 0;34 Light Blue 1;34
Green 0;32 Light Green 1;32
Cyan 0;36 Light Cyan 1;36
Red 0;31 Light Red 1;31
Purple 0;35 Light Purple 1;35
Brown 0;33 Yellow 1;33
Light Gray 0;37 White 1;37
et pour les couleurs d'arrière-plan, le nombre est compris entre 40 et 47
ma question est la suivante: que signifie exactement \e
et [
et m
(après 31) ici?
J'ai lu dans la page de manuel que \ e est escape, mais je n'ai pas compris ce que cela signifie.
shell-script
scripting
echo
M0εiπ
la source
la source
echo "She said \"Hi\""
comme pour ce cas (votre question), vous devrez attendre une meilleure réponse.Réponses:
Ils font partie des «éléments de séquence» des séquences d'échappement ANSI également connues sous le nom de séquences ECMA-48 CSI qui ont été adoptées à l'origine en 1976
Plus précisément,
[
c'est le « Control Sequence Introducer »Tapez
man console_codes
presque n'importe quelle distribution * nix pour voir les codes et certains documents.la source
man 4 console_code
pasman console_code
: dans mon ubuntuPour être précis, les codes de couleur sont définis comme suit:
Donc, fondamentalement, c'est juste la façon dont les différents terminaux interprètent les codes de couleur et vous sous-titrez votre texte au sein de ces éléments. C'est une façon étrange de faire comprendre au terminal ce que vous voulez dire (comme HexCodes ou Binary ..)
la source
J'ai trouvé une belle explication ici (au moins, sympa pour moi :-) ). Je ne sais pas si cela vous sera utile.
Ce sont des codes d'échappement pour définir les modes de couleur dans le terminal. C'est juste que lorsqu'ils sont imprimés avec des caractères normaux, ils ressemblent à ça.
la source
\e
est un raccourci pour le caractère Escape. le<ESC>[
et lem
sont les marqueurs pour le début et la fin des séquences de contrôle de couleur ANSI, qui sont un sous-ensemble de contrôle de terminal ANSI séquencé. La plupart d'entre eux commencent par<ESC>[
, suivi d'un nombre, suivi d'une lettre indiquant quelle fonction est mise en œuvre (par exemple, déplacer le curseur sur la ligne; effacer jusqu'à la fin de la ligne, ramener le curseur sur l'emplacement enregistré, etc.).la source