Ihr Anliegen
Sie wollen in Ihren Shellskripten farbige Textausgaben produzieren. Sie haben das an verschiedenen Stellen schon gesehen (z.B. beim Starten der Dienste beim Booten) und fragen sich, wie das wohl funktioniert.
Das Prinzip dahinter
Alle unter Linux üblichen Terminalemulationen (z.B. xterm, konsole
, die Linux-Konsole, PuTTY) verstehen bestimmte Steuerzeichen, mit denen man Textattribute beeinflussen kann. Diese muss man einfach mit echo
ausgeben.
So geht's im Einzelnen
Alle Steuersequenzen werden eingeleitet mit Escape [
. Danach kommt eine Zahl und dann ein kleines m
. Das Escape-Zeichen hat den Asciicode 27. Damit man es mit echo
ausgeben kann, muss man die Option -e
verwenden und dann die Sequenz \033
eintragen:
echo -e "Now this becomes \033[31mROT\033[0m."
Jetzt wird es ROT.
Einige wichtige Steuerzeichen
Folgende Tabelle gibt einen Überblick über einige nützliche Sequenzen. Dabei ist zu beachten, dass nicht jede Terminalemulation alle Attribute korrekt darstellen kann. Manchmal wird z.B. Fettschrift durch ersatzweise durch eine größere Helligkeit dargestellt:
\033[0m | alle Attribute zurücksetzen |
\033[1m | Fettschrift |
\033[4m | Unterstreichen |
\033[5m | Blinken |
\033[7m | inverse Darstellung |
\033[30m | Schriftfarbe Schwarz |
\033[31m | Schriftfarbe rot |
\033[32m | Schriftfarbe grün |
\033[33m | Schriftfarbe gelb |
\033[34m | Schriftfarbe blau |
\033[35m | Schriftfarbe magenta |
\033[36m | Schriftfarbe türkis |
\033[37m | Schriftfarbe weiß |
\033[40m | Hintergrund schwarz |
\033[41m | Hintergrund rot |
\033[42m | Hintergrund grün |
\033[43m | Hintergrund gelb |
\033[44m | Hintergrund blau |
\033[45m | Hintergrund magenta |
\033[46m | Hintergrund türkis |
\033[47m | Hintergrund weiß |