Ich weiß, dass zum Drucken eines farbigen Texts mit Echo, z. B. rote Farbe, der Code wie folgt lautet: echo -e "\e[1;31m This is red text \e[0m"
und ich weiß, dass in diesem Beispiel 31 der Code der roten Farbe und die Anzahl der anderen Farben wie folgt lautet:
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
und für Hintergrundfarben ist die Zahl 40 bis 47
meine frage lautet: was bedeutet \e
und [
und m
(nach 31) genau hier?
Ich habe in der Manpage gelesen, dass es sich um Flucht handelt, aber ich habe nicht verstanden, was es bedeutet.
shell-script
scripting
echo
M0εiπ
quelle
quelle
echo "She said \"Hi\""
diesen Fall (Ihre Frage) müssen Sie beispielsweise auf eine bessere Antwort warten.Antworten:
Sie sind Teil der 'Sequenzelemente' von ANSI-Escape-Sequenzen, auch bekannt als ECMA-48- CSI-Sequenzen, die ursprünglich 1976 übernommen wurden
Genauer gesagt
[
ist der ' Control Sequence Introducer 'Geben Sie
man console_codes
fast jede * nix-Distribution ein, um die Codes und einige Dokumente anzuzeigen.quelle
man 4 console_code
nichtman console_code
: In meinem UbuntuUm genau zu sein, werden Farbcodes wie folgt definiert:
Im Grunde ist es also die Art und Weise, wie verschiedene Terminals Farbcodes interpretieren und Sie Ihren Text innerhalb dieser Elemente beschriften. Es ist eine seltsame Möglichkeit, das Terminal zu verstehen, was Sie meinen (wie HexCodes oder Binary ..)
quelle
Ich habe hier eine nette Erklärung gefunden (zumindest nett für mich :-) ). Ich bin mir nicht sicher, ob es für Sie nützlich sein wird.
Dies sind Escape-Codes zum Einstellen der Farbmodi im Terminal. Ist nur das, wenn mit regulären Zeichen gedruckt, sehen sie so aus.
quelle
\e
ist eine Abkürzung für den Escape-Charakter. Das<ESC>[
und dasm
sind die Markierungen für den Anfang und das Ende von ANSI-Farbkontrollsequenzen, die eine Teilmenge der ANSI-Terminalkontrollsequenzen sind. Die meisten von ihnen beginnen mit<ESC>[
einer Zahl, gefolgt von einem Buchstaben, der angibt, welche Funktion implementiert wird (z. B. Cursor in Zeile bewegen; zum Zeilenende zurücksetzen, Cursor an gespeicherte Position zurücksetzen usw.).quelle