Scriptausgaben farbig gestalten
Um die Ausgaben farbig zu gestalten werden ANSI Escapesequenzen benutzt. Normalerweise dient ein Terminal dazu einfach nur Text auf dem Bildschirm auszugeben. Da das etwas unzureichend ist, wurden Sequenzen standardisiert. Diese Sequenzen sind „Befehle” an das Terminal und werden nicht ausgeben, sondern veranlassen das Terminal zu einem bestimmten Verhalten. Die Sequenzen sind normale ASCII-Zeichen. Sie starten meistens mit einem Control Sequence Introducer (das Escape Zeichen \033 ) gefolgt von einem [. Danach folgen die Parameter.
Hintergrundfarben
Dieses Script gibt nur die Hintergrundfarben aus. Jeder echo-Ausdruck schreibt eine Hintergrundfarbe in das Terminal und gibt deren Code aus. Die Werte 40m-47m stehen dabei für die Hintergrundfarben. Der Wert 0m setzt alle Attribute wieder zurück (Reset).
#!/bin/bash
echo -e "Hintergrundfarben"
echo -e "\033[0m Kein \033[0m 0m"
echo -e "\033[40m Schwarz \033[0m 40m"
echo -e "\033[41m Rot \033[0m 41m"
echo -e "\033[42m Grün \033[0m 42m"
echo -e "\033[43m Gelb \033[0m 43m"
echo -e "\033[44m Blau \033[0m 44m"
echo -e "\033[45m Rosa \033[0m 45m"
echo -e "\033[46m Cyan \033[0m 46m"
echo -e "\033[47m Hellgrau \033[0m 47m"
Erläuterung an Zeile 7:
- echo -e
- Interpretierung von Maskierungen mittels Rückschrägstrich aktivieren
- \033
- ASCII Escape Zeichen oktal
- [
- gehört noch zur Sequenz
- 42m
- Hintergrundfarbe für Grün
- Grün
- dieser Text wird jetzt auf der Console ausgegeben mit der in der Sequenz gesetzten Hintergrundfarbe
- \033[0m 42m
- alle Attribute wieder zurücksetzten und das Wort 42m ausgeben
Ausgabe:
Vorder- und Hintergrundfarben
Dieses Script gibt eine Reihe von Farbcodes auf dem Terminal aus. Jeder echo-Aufruf druckt eine Vordergrundfarbe auf hellgrauem (47m) und schwarzem Hintergrund (40m) aus und schreibt den Code für die Vordergrundfarbe in die Zeilenmitte. Die Werte 30-37 stehen hier für die Vordergrundfarbe.
#!/bin/bash
echo "Auf Hellgrau: Auf Schwarz:"
echo -e "\033[47m\033[1;37m Weiss \033[0m 1;37m \033[40m\033[1;37m Weiss \033[0m"
echo -e "\033[47m\033[37m Hellgrau \033[0m 37m \033[40m\033[37m Hellgrau \033[0m"
echo -e "\033[47m\033[1;30m Grau \033[0m 1;30m \033[40m\033[1;30m Grau \033[0m"
echo -e "\033[47m\033[30m Schwarz \033[0m 30m \033[40m\033[30m Schwarz \033[0m"
echo -e "\033[47m\033[31m Rot \033[0m 31m \033[40m\033[31m Rot \033[0m"
echo -e "\033[47m\033[1;31m Hellrot \033[0m 1;31m \033[40m\033[1;31m Hellrot \033[0m"
echo -e "\033[47m\033[32m Grün \033[0m 32m \033[40m\033[32m Grün \033[0m"
echo -e "\033[47m\033[1;32m Hellgrün \033[0m 1;32m \033[40m\033[1;32m Hellgrün \033[0m"
echo -e "\033[47m\033[33m Braun \033[0m 33m \033[40m\033[33m Braun \033[0m"
echo -e "\033[47m\033[1;33m Gelb \033[0m 1;33m \033[40m\033[1;33m Gelb \033[0m"
echo -e "\033[47m\033[34m Blau \033[0m 34m \033[40m\033[34m Blau \033[0m"
echo -e "\033[47m\033[1;34m Hellbau \033[0m 1;34m \033[40m\033[1;34m Hellblau \033[0m"
echo -e "\033[47m\033[35m Purpur \033[0m 35m \033[40m\033[35m Purpur \033[0m"
echo -e "\033[47m\033[1;35m Rosa \033[0m 1;35m \033[40m\033[1;35m Rosa \033[0m"
echo -e "\033[47m\033[36m Cyan \033[0m 36m \033[40m\033[36m Cyan \033[0m"
echo -e "\033[47m\033[1;36m Hellcyan \033[0m 1;36m \033[40m\033[1;36m Hellcyan \033[0m"
Ausgabe: