shell脚本如何判断它是否在支持256色的xterm窗口中运行?

时间:2012-06-18 12:01:18

标签: linux shell colors xterm terminfo

我正在编写一个shell脚本,我希望在出现时使用256色支持。 在公平的世界中,xterm只需将TERM环境变量设置为xterm-256color,我就会使用tput colors来发现支持。

但我们生活在一个不公正的世界。即使使用xterm启动,TERM也会将xterm设置为TERM=xterm-256color。我可以在shell脚本中做些什么来发现脚本是否运行时stdout连接到运行在256色xterm窗口中的tty?如果是这样,我可以自己设置环境变量。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

由于现在大多数xterm - s都着色了,我会假设终端有256种颜色,并且让脚本接受一个选项(可能是-monochrome-no-colors)。

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