에코를 사용하여 컬러 텍스트 인쇄

예를 들어 빨간색과 같이 에코를 사용하여 컬러 텍스트를 인쇄하는 코드는 다음과 같습니다. echo -e "\e[1;31m This is red text \e[0m"
이 예에서 31은 빨간색 코드이고 다른 색상의 수는 다음과 같습니다.

Black 0;30 Dark Gray 1;30 Blue 0;34 Light Blue 1;34 Green 0;32 Light Green 1;32 Cyan 0;36 Light Cyan 1;36 Red 0;31 Light Red 1;31 Purple 0;35 Light Purple 1;35 Brown 0;33 Yellow 1;33 Light Gray 0;37 White 1;37 

배경색의 경우 숫자는 40 ~ 47입니다.

제 질문은 다음과 같습니다. \e[ 그리고 m (31 이후) 정확히 여기를 의미합니까?
맨 페이지에서 \ e가 이스케이프라고 읽었지만 그 의미를 이해하지 못했습니다.

댓글

  • In 일반적으로 현재 기술 컨텍스트에서 특별한 의미가있는 문자를 이스케이프합니다. 예를 들어 문자열은 종종 따옴표 안에 작성됩니다. " 다음과 같이 ". 그러나 문자열에 따옴표를 넣으려면 해당 문자를 이스케이프하여 구분 기호가 아닌 문자 그대로 해석되도록해야합니다. 예 : echo "She said \"Hi\"" ), ' 더 나은 답변을 기다려야합니다.
  • hermannn.com/programs/terminal_fonts

답변

ANSI 이스케이프 시퀀스 는 원래 1976 년에 채택 된 ECMA-48 CSI 시퀀스라고도합니다.

더 구체적으로

는 “ Control Sequence Introducer “입니다.

Type man console_codes 거의 모든 * nix 배포판에서 코드와 일부 문서를 볼 수 있습니다.

댓글

  • man 4 console_code not man console_code : 우분투에서
  • 매뉴얼 페이지 이름은 " s " 그래서 " man console_codes "은 올바른 페이지를 표시해야합니다.

답변

정확한 색상 코드는 다음과 같이 정의됩니다.

Opening RED= "\033[31m" or "\e[1;31m" CYAN="\033[36m" or "\e[1;31m" Closing = "\033[m" or "\e[0m" 

기본적으로 다른 터미널이 색상 코드를 해석하고 이러한 요소 내에서 텍스트에 캡션을 지정하는 방식입니다. 터미널이 의미하는 바를 이해하게 만드는 이상한 방법입니다 (예 : HexCodes 또는 Binary ..).

Answer

좋은 설명은 여기 입니다 (적어도 나에게 좋습니다. 🙂 ). 도움이 될지 모르겠습니다.

시작하려면 콘솔에 다음을 입력하세요.

echo "^[[0;31;40mIn Color"

첫 번째 문자는 ^ 및 [두 문자처럼 보이는 이스케이프 문자입니다. 이것을 인쇄하려면 CTRL + V를 누른 다음 ESC 키를 눌러야합니다. 다른 모든 문자는 일반 인쇄 가능한 문자이므로 In Color 문자열이 빨간색으로 표시됩니다. 유형은 다음을 입력하여 다시 돌아올 때까지 해당 색상을 유지합니다.

터미널에서 색상 모드를 설정하는 이스케이프 코드입니다. 일반 문자로 인쇄 할 때 그런 것처럼 보입니다.

답변

\e는 이스케이프 문자의 약자입니다. <ESC>[m는 ANSI 색상 제어 시퀀스의 시작과 끝을 나타내는 마커이며, ANSI 터미널 제어 시퀀스의 하위 집합입니다. . 대부분은 <ESC>[로 시작하고 그 뒤에 숫자가오고 그 뒤에 어떤 기능이 구현되고 있는지 나타내는 문자가옵니다 (예 : 커서를 줄로 이동, 줄 끝으로 지우기, 커서를 저장 됨으로 되돌림). 위치 등).

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다