쉘 스크립트에 색상 표시

쉘 스크립트에 색상 표시

.Xresources의 색상을 사용하지 않고 터미널에서 색상을 인쇄할 수 있습니까? 예를 들어 echo -e "\033[32m Test""Test"가 인쇄되지만 해당 색상은 .Xresources에서 녹색으로 정의한 색상입니다. 즉, 사전 설정을 다시 정의하지 않고 #FF0000과 같이 정의되지 않은 색상을 인쇄하려면 어떻게 해야 합니까?

답변1

터미널(셸) 창의 색상은 파일의 색상과 실제 관계가 없습니다 .Xresources.

터미널(셸) 창에서 색상을 인쇄하려면 이 tput명령을 진지하게 고려해야 합니다. 이는 terminfo데이터베이스를 사용하여 색상을 얻는 데 필요한 이스케이프 시퀀스를 생성합니다.

man 5 terminfo관련 섹션을 읽을 수 있습니다 Color Handling. 사용 가능한 색상 표는 다음과 같습니다.

Colour    Value RGB
black     0     0, 0, 0
red       1     max,0,0
green     2     0,max,0
yellow    3     max,max,0
blue      4     0,0,max
magenta   5     max,0,max
cyan      6     0,max,max
white     7     max,max,max

그리고 setaf(ANSI 전경 설정) 및 setab(ANSI 배경 설정) 명령을 사용하여 설정합니다. 나중에 sgr0재설정 하는 데 사용됩니다.

예를 들어

tput setaf 4    # Blue text
tput setab 3    # Yellow background
echo -n "This is blue text on a yellow background"
tput sgr0       # Reset colours
echo 

답변2

일부 터미널 에뮬레이터는 직접 RGB 트루 컬러를 지원합니다. 바라보다https://gist.github.com/XVilka/8346728자세한 내용과 사용 예를 알아보세요.

관련 정보