콘솔 색상 인쇄

콘솔 색상 인쇄

콘솔 색상을 표시하는 bash 함수를 작성했습니다.

하지만 일부 색상은 이런 식으로 표시되지 않는 것 같습니다! (?)

또한 이상한 "광택이 나는 검정색" 색상에 주목하세요!

(참고: 아래 화면 덤프는 xterm에서 가져온 것이지만 콘솔 모드에서 사용하기 위한 것입니다. 화면 덤프를 얻으려면 xterm을 사용해야 했지만 비슷해 보입니다.)

정리율

function clr () {
  Color_names="bla red gre yel blu mag cya whi"
  Color_arr=($Color_names)
  for m in {0..15}
  do
    tput setaf $m
    echo -n ${Color_arr[$((m % 8))]}" "
  done
  echo
  tput sgr0
  cat /sys/module/vt/parameters/default_red \
      /sys/module/vt/parameters/default_grn \
      /sys/module/vt/parameters/default_blu | tr "," "\t"
}

답변1

를 확인해보면 tput colors답은 8이라는 것을 알 수 있을 것이다. 밝은 색상을 표현하는 방법은 을 통해서 입니다 tput bold.

전경과 배경의 모든 8x8x2 조합(보통 및 굵은 글씨)이 표시됩니다.

for cmd in sgr0 bold; do
  tput $cmd
  for i in $(seq 0 7); do
    for j in $(seq 0 7); do
      tput setaf $i; tput setab $j; echo -n " $i,$j "
    done
    tput sgr0; echo; tput $cmd
  done
done

답변2

이 블로그 게시물을 참조하세요. http://www.enigmacurry.com/2009/01/20/256-colors-on-the-linux-terminal/

편집: 결과가 8가지 색상밖에 없다면 tput-colorncurses를 사용하여 약점을 해결할 수 있습니다! 우분투에 설치하십시오:

sudo apt-get install ncurses-term

그리고 ~/.bashrc 또는 ~/bash_profile에 다음 줄을 추가합니다.

export TERM=xterm-256color

스크립트 대신 emacs 명령을 사용하여 색상을 볼 수 있습니다. 터미널에서 emacs를 실행 emacs -nw하고 명령을 입력하십시오.M-x list-colors-display

어떤 터미널을 사용하든 이 도구는 모든 터미널 에뮬레이터에서 작동합니다 ;-)

답변3

Linux 콘솔에 사용할 수 있는 여러 터미널 설명이 있습니다. 가장 일반적으로 사용되는 것은 물론 다음과 같이 설정됩니다.TERM=linux.

대안으로는TERM=linux-16color, @angus의 답변에서 볼 수 있듯이 굵은 색상/색상 조합을 수행합니다.

비교 linuxlinux-16color표시 infocmp:

comparing linux to linux-16color.
    comparing booleans.
    comparing numbers.
        colors: 8, 16.
        ncv: 18, 63.
        pairs: 64, 256.
    comparing strings.
        setab: '\E[4%p1%dm', '\E[4%p1%{8}%m%d%?%p1%{7}%>%t;5%e;25%;m'.
        setaf: '\E[3%p1%dm', '\E[3%p1%{8}%m%d%?%p1%{7}%>%t;1%e;21%;m'.

%t;5및 프래그먼트는 깜박임 및 굵게 속성(디스플레이 하드웨어의 기능)을 사용하여 및 에 입력된 값을 기반으로 %t;1밝은 배경색과 전경색을 얻습니다 .tput setabtput setaf

다음은 ncurses 테스트 프로그램을 사용하여 수행한 스크린샷입니다 linux-16color.

linux-16color의 예

관련 정보