Terminal-Emulator
檢查我的終端模擬器支持多少種顏色
有沒有可靠的方法來檢查我的終端模擬器支持多少種顏色?
如果
echo $TERM
printsxterm
,這是否明確告訴我我的終端模擬器支持多少種顏色?我怎樣才能可靠地檢查這些資訊?
的值
$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
在流行的終端中,xterm 和基於 VTE 庫的終端(Gnome-terminal、Terminator、Xfce4-terminal,…)都支持這種控制序列;rxvt、konsole、screen 和 tmux 沒有。
我不知道更直接的方法。