
Sie kennen die farbige Ausgabe, die durch spezielle Zeichenfolgen erzeugt wird, zum Beispiel:
echo -e "\e[34m Hello\n \e[0m"
Dadurch wird das Wort „Hallo“ blau gefärbt. Dazu musste ich im Internet suchen, und das ist schwierig, da verschiedene Quellen etwas anderes sagen können. Ich dachte, es müsse Handbücher geben, aber ich konnte keine finden. Nicht einmal mit apropos color
oder etwas Ähnlichem. Die Frage ist also: Wo kann ich zuverlässige Handbücher finden?
Antwort1
Es gibt zu viele Informationsquellen, um sie auf dieser Seite aufzulisten:
- Der Befehl
echo -e
verwendet einVerlängerungals ASCII 27 (Oktal 33 oder "\033") wiederzugeben\e
. Die portable Art, diese auszudrucken, verwendetprintf
(POSIX). Vergleiche mit Standardecho
(POSIX). Ihr Beispiel kann wie folgt umgeschrieben werden:
printf "\033[34m Hello\n \033[0m"
- Der Standard für die Farbfluchten istECMA-48(Steuerfunktionen für codierte Zeichensätze).
- In ECMA-48, 8.3.117 SGR – SELECT GRAPHIC RENDITION sind Steuersequenzen zum Einstellen von 8 Vordergrund- und 8 Hintergrundfarben aufgelistet.
- Es werden auch die Codes 39/49 „Standardanzeigefarbe (implementierungsdefiniert)“ und 38/48 „für zukünftige Standardisierung reserviert; vorgesehen zum Einstellen der Vordergrundfarbe von Zeichen gemäß ISO 8613-6 [CCITT-Empfehlung T.416]“ aufgeführt. Das heißt, es gibt eine Empfehlung einer anderen Organisation, aber sie wurde (bisher, nach 24 Jahren) nicht in den Standard aufgenommen.
- Wenn Sie ihn genau lesen, werden Sie feststellen, dass der Standard an vielen Stellen vage ist und unterschiedliche Interpretationen zulässt. Er beschreibt dieSyntaxdieser Kontrollsequenzen, beschreibt aber nicht derenVerhaltenHierzu müssen Sie in die Dokumentation der jeweiligen Endgeräte einsteigen.
- Die Dokumentation zu xterm finden Sie inXTerm-Steuersequenzen, was eine Vertrautheit mit der DEC-Dokumentation voraussetzt, die sich aufhttp://vt100.net
- für andere Terminals können die Bedienelemente in den Manualpages aufgelistet sein (wie für die Linux-Konsole inKonsolencodes).
- andere Terminals dokumentieren sich selbst als „xterm“; weitere Informationen finden Sie in den xterm-FAQsVergleichen von Versionen durch Zählen der Steuerelemente. Glücklicherweise sind die Farbkontrollenmeistenskompatibel (siehe aber die ncurses FAQMein Terminal zeigt einige nicht gefärbte Bereiche an).
Sie können auch die Manualpages für
tput
, mit dem Sieterminfo
Fähigkeiten in einem Shell-Skript. Ihr Beispiel könnte wie folgt umgeschrieben werden:printf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
einige Quellen wie dieBash-Eingabeaufforderung – Anleitungund dasErweitertes Bash-Scripting-HandbuchErwähnen Sie Farbe, aber (auch diese) weisen in der Regel Lücken und Auslassungen auf und sind in Bezug auf ECMA-48 nicht hilfreich.
- Die meisten anderen Quellen, die Sie über eine Websuche finden, kopieren aus anderen Quellen (z. B. den zitierten) usw. und achten in der Regel wenig auf den tatsächlichen Standard.