我正在编写一个shell脚本,我希望在出现时使用256色支持.
在一个公正的世界中,xterm会简单地将TERM环境变量设置为xterm-256color,并且我会使用tput颜色来发现支持.
但我们生活在一个不公正的世界.即使使用TERM = xterm-256color启动,xterm也会将TERM设置为xterm.我可以在shell脚本中做些什么来发现脚本是否运行时stdout连接到运行在256色xterm窗口中的tty?如果是这样,我可以自己设置环境变量.
最佳答案
您可以检查xterm版本 – $XTERM_VERSION.虽然我不确定xterm从哪个版本开始支持256色.其他终端(例如gnome-terminal)的行为与xterm类似,但也设置COLORTERM变量以更正终端名称(gnome-256color).