Ame*_*ina 23 terminal-emulator
有没有可靠的方法来检查我的终端模拟器支持多少种颜色?
如果echo $TERM
prints xterm
,这是否明确告诉我我的终端模拟器支持多少种颜色?我怎样才能可靠地检查这些信息?
Gil*_*il' 24
的值$TERM
没有提供有关支持的颜色数量的太多信息。许多终端将自己宣传为xterm
,并且可能支持任意数量的颜色(2、8、16、88 和 256 是常见值)。
您可以通过OSC 4 ; c ; ? BEL
控制序列查询每种颜色的值。如果c
支持颜色编号,并且终端理解此控制序列,则终端将回复颜色的值。如果不支持色号或者终端不理解这个控制序列,终端什么也不回答。这是一个 bash/zsh 片段,用于查询是否支持颜色 42(如有必要,重定向到/从终端重定向):
printf '\e]4;%d;?\a' 42
if read -d $'\a' -s -t 1; then … # color 42 is supported
Run Code Online (Sandbox Code Playgroud)
在流行的终端中,xterm和基于VTE库的终端(Gnome-terminal、Terminator、Xfce4-terminal等)都支持这种控制序列;rxvt、konsole、screen 和 tmux 没有。
我不知道更直接的方法。
小智 13
您可以使用
$ tput colors
Run Code Online (Sandbox Code Playgroud)
在我的 debian install tput 是ncurses-bin
默认安装的包的一部分。
小智 12
有一个 perl 脚本256colors2.pl,它将在您的终端上显示所有颜色。