繁体   English   中英

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

[英]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设置TERMxterm即使与推出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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM