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

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

예를 들어 빨간색과 같은 컬러 텍스트를 인쇄하기 위해 에코를 사용하는 경우 코드는 다음과 같습니다. 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( 31 이후)는 무엇을 의미합니까? 매뉴얼 페이지에서 \e가 탈출구라는 것을 읽었지만 그것이 무엇을 의미하는지 이해하지 못합니다.[m

답변1

"시퀀스 요소"의 일부입니다.ANSI 이스케이프 시퀀스또한 ~으로 알려진ECMA-48CSI 시퀀스는 1976년에 처음 채택되었습니다.

더 구체적으로 ['제어 시퀀스 임포터'

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

답변2

정확하게 말하면 색상 코드는 다음과 같이 정의됩니다.

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

Closing = "\033[m" or "\e[0m"

따라서 기본적으로 이는 서로 다른 터미널이 색상 코드를 해석하고 이러한 요소 내의 텍스트에 제목을 추가하는 방식입니다. 이는 터미널이 의미하는 바를 이해하도록 하는 이상한 방법입니다(예: 16진수 또는 2진수...).

답변3

좋은 설명을 찾았습니다여기(적어도 나에겐 괜찮다.:-)). 그것이 당신에게 효과가 있을지 잘 모르겠습니다.

먼저 콘솔에 다음을 입력합니다.

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

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

터미널에서 색상 모드를 설정하는 데 사용되는 이스케이프 코드입니다. 일반 문자로 인쇄하면 이런 모습입니다.

답변4

\eEscape Character의 약어입니다. the <ESC>[및 the는 mANSI 터미널 제어 시퀀스의 하위 집합인 ANSI 색상 제어 시퀀스의 시작 및 끝 태그입니다. 대부분은 숫자로 시작 <ESC>[하고 그 뒤에 구현되는 기능을 나타내는 문자가 옵니다(예: 커서를 줄로 이동, 줄 끝까지 지우기, 커서를 저장된 위치로 되돌리기 등).

관련 정보