我正在编写一个shell脚本,我希望在出现时使用256色支持。
在公平的世界中,xterm
只需将TERM
环境变量设置为xterm-256color
,我就会使用tput colors
来发现支持。
但我们生活在一个不公正的世界。即使使用xterm
启动,TERM
也会将xterm
设置为TERM=xterm-256color
。我可以在shell脚本中做些什么来发现脚本是否运行时stdout连接到运行在256色xterm
窗口中的tty?如果是这样,我可以自己设置环境变量。
答案 0 :(得分:2)
您可以检查xterm版本 - $ XTERM_VERSION。虽然我不确定xterm从哪个版本开始支持256色。其他终端(例如gnome-terminal)的行为与xterm类似,但也设置COLORTERM变量以更正终端名称(gnome-256color)。
答案 1 :(得分:0)
由于现在大多数xterm
- s都着色了,我会假设终端有256种颜色,并且让脚本接受一个选项(可能是-monochrome
或-no-colors
)。
-monochrome
行为的原因:在非常慢的连接上(想想洲际ssh
)禁用颜色以降低带宽可能是有用的