tput
다음은 항상 이스케이프 시퀀스와 색상을 사용할 수 있음을 나타내야 합니까 ?
if [[ $TERM == *"color"* ]]; then
true
else
false
fi
답변1
아니요: 터미널 설명의 이름은 관련이 없습니다. TERM
터미널 설명의 이름입니다. 색상을 지원하는 터미널은 많고 대부분 이름에 "color"가 없습니다. 예를 들어 터미널 설명의 이름을 "색상 없음"으로 지정할 수 없는 이유는 없습니다.
터미널에 설명된 프로그램을 사용하여 보기능력그 중에 나열되어 있습니다. 물론 터미널 설명 이름에 대한 정보를 가정하는 하드 코딩된 프로그램이 많이 있습니다.
ncurses FAQ에 따르면내 단말기가 색상을 인식하지 못합니다, 터미널 설명에는 터미널이 지원하는 색상 수와 전경색 및 배경색 설정 방법이 설명되어 있어야 합니다.
당신은 그것을 사용할 수 있습니다tput
색상 수를 얻으십시오.
colors=$(tput colors)
if [ $colors -gt 1 ]
능력 이 부족하면 수익이 colors
발생하기 때문입니다 .tput
-1