컬러 쉘 출력에 대한 매뉴얼 페이지가 있습니까?


23

특수 문자 시퀀스로 작성된 색상이 지정된 출력은 다음과 같습니다.

echo -e "\e[34m Hello\n \e[0m"

그러면 "Hello"라는 단어가 파란색으로 표시됩니다. 이렇게하려면 웹에서 검색해야했으며 다른 소스가 다른 것을 말할 수 있기 때문에 어렵습니다. 매뉴얼이 있어야한다고 생각했지만 찾을 수 없었습니다. 함께 apropos color또는 비슷한 것. 문제는 신뢰할 수있는 매뉴얼을 어디서 찾을 수 있습니까?


2
ANSI 이스케이프 코드에 대한 설명서를 찾고 있습니다. (필요한 경우 Wikipedia 페이지를 사용하는 경향이 있습니다.)
chepner

반드시 이스케이프 시퀀스를 알 필요는 없습니다. 여러 셸 (tcsh, zsh, fish)은 해당 시퀀스를 명시 적으로 작성하지 않고도 색상으로 출력 할 수 있도록 기본적으로 지원됩니다.
Stéphane Chazelas

답변:


27

이 페이지에 나열 할 정보 소스가 너무 많습니다.

  • 이 명령 echo -e확장명 을 사용하여 \eASCII 27 (8 진수 33 또는 "\ 033") 로 렌더링 합니다. 이러한 용도를 인쇄하는 휴대용 방법 printf(POSIX). 표준 echo(POSIX) 과 비교하십시오 .
  • 귀하의 예는 다음과 같이 다시 작성할 수 있습니다

    printf "\033[34m Hello\n \033[0m"

  • 색상 이스케이프의 표준은 ECMA-48 (코딩 된 문자 집합에 대한 제어 기능)입니다.
  • ECMA-48에서 8.3.117 SGR-그래픽 그래픽 선택은 8 개의 전경색과 8 개의 배경색을 설정하기위한 제어 순서를 나열합니다.
  • 또한 코드 39/49 "기본 디스플레이 색상 (구현 정의)"및 38/48 "향후 표준화를 위해 예약되어 있으며 ISO 8613-6 [CCITT Recommendation T.416]에 지정된 문자 전경색을 설정하기위한 것입니다." 즉, 다른 조직의 권장 사항이 있지만 (24 년 후) 표준에 포함되지 않았습니다.
  • 자세히 읽으면 표준이 많은 곳에서 모호하여 다른 해석이 가능하다는 것을 알 수 있습니다. 이 제어 순서 의 구문 에 대해서는 설명하지만 해당 동작 순서는 설명하지 않습니다 . 이를 위해서는 해당 터미널의 설명서로 이동해야합니다.
  • xterm에 대한 문서는 XTerm Control Sequences 에 있으며, http://vt100.net 에있는 DEC 문서에 익숙하다고 가정
  • 다른 터미널의 경우, 매뉴얼 페이지가 제어를 열거 할 수 있습니다 ( console_codes의 Linux 콘솔에 대해 수행됨 ).
  • 다른 터미널은 "xterm"으로 문서화됩니다. 자세한 내용은 컨트롤을 계산 하여 xterm FAQ 버전 비교를 참조하십시오 . 다행히 색상 컨트롤은 대부분 호환되지만 ncurses FAQ를 참조하십시오. 내 터미널에 색상이없는 공간이 표시 됩니다.
  • 쉘 스크립트에서 기능 tput을 사용할 수있는에 대한 매뉴얼 페이지를 읽을 수도 있습니다 terminfo. 귀하의 예는 다음과 같이 다시 작성할 수 있습니다

    printf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
    
  • Bash Prompt HOWTOAdvanced Bash-Scripting Guide 와 같은 일부 소스 에는 색상이 언급되어 있지만 (이러한 것조차도) 일반적으로 간격과 누락이 있으며 ECMA-48과 관련하여 도움이되지 않습니다.

  • 다른 출처 (예 : 인용 된 출처 등)의 웹 검색 사본에서 찾을 수있는 대부분의 다른 출처는 일반적으로 실제 표준에 거의주의를 기울이지 않습니다.

ECMA-48의 관련 섹션은 8.3.117- "SGR-SELECT GRAPHIC RENDITION"인 것 같습니다. "blue"라는 단어 만 언급되어 있으며 적어도 XTerm에서 작동하는 코드가 있습니다.
l0b0

예-설명을 추가하겠습니다.
Thomas Dickey

2
정말 좋은 답변입니다-모든 답변을 여러분의 것으로
Sergius

1
xterm은 256 색 모드도 지원합니다. 아마도 위의 설명서 중 하나에 설명되어 있습니다.
sendmoreinfo

명령 출력으로 모든 종류의 채색 작업을 수행 할 수있는 grc 패키지를 포함한 유용한 정보는 wynnnetherland.com/journal/… 을 참조하십시오 .
Joe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.