我正在编写一个shell脚本,我希望在出现时使用256色的支持。 在一个正义的世界里, xterm会简单地将TERM环境variables设置为xterm-256color ,我会使用tput colors来发现支持。
但我们生活在一个不公正的世界。 即使使用TERM=xterm-256color启动, xterm也将TERM设置为xterm 。 有没有什么我可以从一个shell脚本内做的事情来发现是否脚本运行与stdout连接到一个tty在一个256色的xterm窗口中运行? 如果是这样,我可以自己设置环境variables。
如何上色Linuxterminal的前景和背景文本
Bash和对话框UI,如何dynamic改变颜色
Windows API彩色输出到Powershell / cmd.exe中的标准输出
创build色板库
您可以检查xterm版本 – $ XTERM_VERSION。 虽然我不确定xterm从哪个版本开始支持256种颜色。 其他终端(例如gnome-terminal)的行为与xterm类似,但也设置COLORTERM变量来正确终端名称(gnome-256color)。
因为现在大多数xterm -s都被着色了,所以我会假定终端有256种颜色,并且让脚本接受一个选项(或许是-monochrome或者是-monochrome )。
顺便说一句,我也看到一些强大的用户强制-monochrome行为的原因:在非常慢的连接(想到洲际ssh ),禁用颜色来降低带宽可能是有用的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。