2012-06-18 7 views
6

Ich schreibe ein Shell-Skript, das ich 256-Farben-Unterstützung verwenden möchte, wenn vorhanden. In einer gerechten Welt würde xterm einfach die Umgebungsvariable auf xterm-256color setzen und ich würde tput colors verwenden, um die Unterstützung zu entdecken.Wie kann ein Shell-Skript feststellen, ob es in einem Xterm-Fenster mit 256-Farben-Unterstützung ausgeführt wird?

Aber wir leben in einer ungerechten Welt. xterm setzt zu xterm, auch wenn mit TERM=xterm-256color gestartet. Was kann ich in einem Shell-Skript tun, um zu erkennen, ob das Skript mit stdout läuft, das mit einem tty verbunden ist, das in einem 256-Farben-Fenster läuft? Wenn ja, kann ich die Umgebungsvariable selbst setzen.

Antwort

2

Sie können für Xterm-Version überprüfen - $ XTERM_VERSION. Obwohl ich nicht sicher bin, von welcher Version xterm 256 Farben unterstützt hat. Andere Terminals (z. B. gnome-terminal) verhalten sich ähnlich wie xterm, setzen aber auch die Variable COLORTERM auf korrekten Terminalnamen (gnome-256color).

0

Da die meist xterm es in diesen Tagen koloriert ist, würde ich davon ausgehen, dass das Endgerät 256 Farben hat, und stellen Sie das Skript eine Option akzeptieren (vielleicht -monochrome oder -no-colors) anders.

BTW, ich sehe auch ein Grund für einige Power-User das -monochrome Verhalten zu erzwingen: Bei sehr langsamen Verbindungen (man denke an interkontinentalen ssh) es nützlich sein könnte, Farben zu deaktivieren, die Bandbreite zu senken.

+0

meisten Begriff Unterstützung nur 16 Farben. –

Verwandte Themen