2012-06-18 23 views
6

我正在写一个shell脚本,我想在出现时使用256色支持。 在一个公正的世界中,xterm只会将TERM环境变量设置为xterm-256color,我会用tput colors来发现支持。shell脚本如何判断它是否在具有256色支持的xterm窗口中运行?

但我们生活在一个不公正的世界。 xtermTERMxterm即使与TERM=xterm-256color一起启动。有没有什么我可以从一个shell脚本内做的事情来发现脚本是否运行在stdout连接到一个256色的xterm窗口中运行的tty?如果是这样,我可以自己设置环境变量。

回答

2

您可以检查xterm版本 - $ XTERM_VERSION。虽然我不确定xterm从哪个版本开始支持256种颜色。其他终端(例如gnome-terminal)的行为与xterm类似,但也设置了COLORTERM变量以更正终端名称(gnome-256color)。

0

由于大多数xterm -s被着色的这些日子里,我会假设终端有256种颜色,并且使脚本以其他方式接受的选项(可能-monochrome-no-colors)。

顺便说一句,我也看到一些电力用户强迫-monochrome行为的原因:在非常缓慢的连接(想到洲际ssh),禁用颜色以降低带宽可能是有用的。

+0

最多只支持16种颜色。 –

相关问题