Linux

檢查終端是否支持 24 位/真彩色

  • September 22, 2020

在 shell 腳本中,如何以程式方式測試終端是否支持 24 位或真彩色?


相關:這個問題是關於列印用於眼球驗證的 24 位/真彩色測試圖案

該消息來源說要檢查是否$COLORTERM包含24bittruecolor

sh

[ "$COLORTERM" = truecolor ] || [ "$COLORTERM" = 24bit ]

bash / zsh:

[[ $COLORTERM =~ ^(truecolor|24bit)$ ]]

只需使用tput colors. 我相信測試實際終端功能比使用$TERM$COLORTERM

if (( $(tput colors 2>/dev/null) > 256 )); then
   echo "What a beautiful rainbow!!!"
else
   echo "Back to the 80's VGA era anyone?"
fi

引用自:https://unix.stackexchange.com/questions/450365