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

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

다음과 같은 특수 문자 시퀀스로 생성된 컬러 출력이 있습니다.

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

그러면 "Hello"라는 단어가 파란색으로 생성됩니다. 그러기 위해서는 웹에서 검색을 해야 했는데, 출처마다 다른 내용이 나올 수 있어서 어려웠습니다. 설명서가 있을 거라 생각했는데 못 찾겠어요. 그런게 있거나 apropos color그런게 있어도 말이죠. 그렇다면 문제는 - 신뢰할 수 있는 매뉴얼을 어디서 찾을 수 있는가 하는 것입니다.

답변1

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

  • 이 명령 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 권장사항 T.416]에 지정된 문자 전경색을 설정하는 데 사용됩니다."가 나열되어 있습니다. 즉, 다른 조직에서 이를 제안했지만 (24년이 지난 지금까지) 표준의 일부가 되지 않았습니다.
  • 주의 깊게 읽으면 표준이 여러 곳에서 모호하여 다양한 해석이 가능하다는 것을 알 수 있습니다. 그것은 설명한다통사론이러한 제어 시퀀스는 설명하지 않습니다.행동. 이렇게 하려면 해당 터미널에 대한 설명서를 확인해야 합니다.
  • xterm에 대한 문서는 다음 위치에 있습니다.XTerm 제어 순서, DEC 문서에 익숙하다고 가정http://vt100.net
  • 다른 터미널의 경우 매뉴얼 페이지에서 컨트롤을 열거할 수 있습니다(Linux 콘솔에서 수행됨).콘솔 코드).
  • 다른 터미널은 자체적으로 "xterm"으로 문서화되어 있으며 xterm FAQ를 참조하세요.개수 제어를 사용하여 버전 비교. 다행히 색상 조절은최대호환 가능(그러나 ncurses FAQ 참조)내 터미널에 색칠되지 않은 공간이 표시됩니다.).
  • 매뉴얼 페이지를 읽을 수도 있습니다.tput, 이를 통해 다음을 사용할 수 있습니다.terminfo쉘 스크립트의 기능. 귀하의 예는 다음과 같이 다시 작성할 수 있습니다

    printf '%s\n' "$(tput setaf 4)Hello$(tput setaf 0)"
    
  • 일부 소스:Bash 프롬프트 HOWTO그리고고급 Bash 스크립팅 가이드색상이 언급되어 있지만 일반적으로 ECMA-48에 도움이 되지 않는 간격과 누락이 있습니다.

  • 다른 출처(예: 인용 출처) 등의 사본을 웹 검색하여 대부분의 다른 출처를 찾을 수 있지만 실제 표준에는 거의 관심을 기울이지 않는 경우가 많습니다.

관련 정보