Bash
術語中的“顏色”是否總是意味著我可以使用顏色?
以下是否應該始終表明我可以使用轉義序列並對
tput
事物進行著色?if [[ $TERM == *"color"* ]]; then true else false fi
否:終端描述的名稱無關緊要。
TERM
是終端描述的名稱。有很多,而且大多數支持顏色的終端名稱中都沒有“顏色”。例如,沒有理由不能將終端描述命名為“無顏色”。使用終端描述的程序會查看其中列出的*功能。*當然,有很多硬編碼的程序會假設終端描述的名稱。
根據ncurses FAQ My terminal doesn’t identify color,終端描述應該說終端支持多少種顏色,以及如何設置前景色和背景色。
您可以使用
tput
獲取顏色的數量:colors=$(tput colors) if [ $colors -gt 1 ]
因為缺少的
colors
能力會帶來tput
回報-1
。