[英]How can a shell script tell if it is running in an xterm window with 256-color support?
我正在编写一个shell脚本,我希望在出现时使用256色支持。 在一个公正的世界中, xterm
会简单地将TERM
环境变量设置为xterm-256color
并且我会使用tput colors
来发现支持。
但我们生活在一个不公正的世界。 xterm
设置TERM
到xterm
即使与推出TERM=xterm-256color
。 我可以在shell脚本中做些什么来发现脚本是否运行时stdout连接到运行在256色xterm
窗口中的tty? 如果是这样,我可以自己设置环境变量。
您可以检查xterm版本 - $ XTERM_VERSION。 虽然我不确定xterm从哪个版本开始支持256色。 其他终端(例如gnome-terminal)的行为与xterm类似,但也设置COLORTERM变量以更正终端名称(gnome-256color)。
由于现在大多数xterm
-s都是彩色的,我会假设终端有256种颜色,并且使脚本接受一个选项(可能是 - -monochrome
或-no-colors
)。
顺便说一句,我也看到一些高级用户强迫-monochrome
行为的原因:在非常慢的连接上(想想洲际ssh
),禁用颜色以降低带宽可能是有用的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.