2012-06-18 11 views
6

私は256色サポートを使用したいシェルスクリプトを書いています。 ただの世界では、xtermTERMという環境変数をxterm-256colorに設定するだけで、tput colorsを使用してサポートを検出します。シェルスクリプトは、256色サポートのxtermウィンドウで実行されているかどうかをどのように伝えることができますか?

しかし、私たちは不当な世界に住んでいます。 xtermは、TERM=xterm-256colorで起動してもTERMxtermと設定します。シェルスクリプト内でスクリプトが256色のxtermウィンドウで実行中のttyにstdoutで実行されているかどうかを調べるために何かできることはありますか?もしそうなら、自分で環境変数を設定することができます。

答えて

2

xtermバージョン - $ XTERM_VERSIONを確認できます。 xtermがどのバージョンから256色をサポートしているのかは分かりませんが。他の端末(gnome-terminalなど)はxtermと同様に動作するだけでなく、COLORTERM変数を設定して端末名(gnome-256color)を修正します。

0

最もxterm -sは、これらの日色づけされているので、私は、端末が256色を持っていると仮定して、スクリプトはそれ以外のオプション(おそらく-monochromeまたは-no-colors)を受け入れるになるだろう。

私は一部のパワーユーザーが-monochromeの動作を強制する理由も確認しています。非常に遅い接続(大陸間sshを考えてください)では、帯域幅を低くするために色を無効にすると便利です。

+0

ほとんどの用語は16色しかサポートしていません。 –