6

我正在编写一个 shell 脚本,我想在存在时使用 256 色支持。在一个公正的世界中,xterm只需将TERM环境变量设置为,xterm-256color然后我会使用它tput colors来发现支持。

但我们生活在一个不公正的世界。 xterm设置TERMxterm即使使用TERM=xterm-256color. 我可以从 shell 脚本中做些什么来发现脚本是否正在运行,stdout 连接到在 256 色xterm窗口中运行的 tty?如果是这样,我可以自己设置环境变量。

4

2 回答 2

2

您可以检查 xterm 版本 - $XTERM_VERSION。虽然我不确定 xterm 从哪个版本开始支持 256 色。其他终端(例如 gnome-terminal)的行为与 xterm 类似,但也将 COLORTERM 变量设置为正确的终端名称(gnome-256color)。

于 2012-07-09T06:11:55.897 回答
0

由于现在大多数xterm-s 都是彩色的,所以我假设终端有 256 种颜色,并让脚本接受一个选项(可能是-monochromeor -no-colors),否则。

顺便说一句,我也看到了一些高级用户强制-monochrome 行为的原因:在非常慢的连接上(想想 intercontinental ssh),禁用颜色以降低带宽可能很有用。

于 2012-06-19T03:54:21.310 回答