Ja. ANSI-Terminals unterstützen ANSI-Escape-Codes . Jeder Control Sequence Introducer
( CSI
) Code im folgenden Format:
ESC[<<<CODE>>>
Das Ascii-Zeichen 27
(das ESC
Zeichen) oder 1b
hexadezimal, gefolgt von einer linken eckigen Klammer und einem Buchstaben, der die zu verwendende Aktion angibt.
Beachten Sie, dass eine Liste der ;
getrennten Parameter direkt vor dem <<<CODE>>>
Parameter angegeben werden kann.
Jetzt verwenden Farben eine Untergruppe von CSI
Codes, die Select Graphic Rendition
Codes. Diese sind in der Form:
ESC[<<<SGR>>>m
Der SGR
Code wird als Parameter übergeben CSI
. Relevant für Ihre Frage sind die SGR
Codes 30-49. Mit den Codes 30-39 wird die Vordergrundfarbe eingestellt. Mit den Codes 40-49 wird die Hintergrundfarbe eingestellt.
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
Die Codes 38 und 48 sind Sondercodes. Mit diesen können Sie RGB-Werte verwenden. Das Format für diese ist:
ESC[38;2;<r>;<g>;<b>m (Foreground)
ESC[48;2;<r>;<g>;<b>m (Background)
Hinweis: alternative Verwendungen umfassen \x1b[<3 or 4>8;5;<web safe color index>m
. Bei dieser Verwendung gibt es eine völlig andere Farbcodierung. Weitere Informationen finden Sie über den Link oben in dieser Antwort.
Mit den Codes 39 und 49 werden die Vordergrund- und Hintergrundfarben auf ihre Standardwerte gesetzt, die Terminal für Terminal festgelegt werden.
In der Praxis unterscheiden sich die Farben 30-37 40-47 geringfügig von den Angaben auf den Etiketten.
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
Um helle Farben zu erhalten, verwenden Sie die SGI für Fettdruck 1
. Fett ist ein irreführender Name. Die Schrift wird dadurch nicht fett dargestellt. Tatsächlich wird die Helligkeit des Texts erhöht. Mit Fettdruck werden die Farben:
0 - Dark Grey
1 - Bright Red
2 - Bright Green
3 - Bright Yellow
4 - Bright Blue
5 - Bright Magenta
6 - Bright Cyan
7 - White
Hinweis: Die letzten beiden Farbblöcke sind sowohl für den Vorder- als auch für den Hintergrund relevant ( <index> + (30 or 40)
).
Verwenden Sie SGR
0, um alle Stile zu entfernen (zurück zum Standard- / Normalmodus) .
CSI
Codes sind nicht alle grafisch. Zum Beispiel ESC[2J
wird Ihr Terminal gelöscht. ESC[<y>;<x>H
Setzt die Cursorposition (1-indiziert). Weitere Informationen finden Sie im Wikipedia-Artikel.
Hinweis: Um diese zu testen, verwenden Sie echo -e
oder printf
.