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

Nor*_*sey 6 linux shell colors xterm terminfo

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

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

Leo*_*sky 2

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