![에코를 사용하여 컬러 텍스트 인쇄](https://linux55.com/image/24119/%EC%97%90%EC%BD%94%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%BB%AC%EB%9F%AC%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EC%9D%B8%EC%87%84.png)
예를 들어 빨간색과 같은 컬러 텍스트를 인쇄하기 위해 에코를 사용하는 경우 코드는 다음과 같습니다. 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
\e
Escape Character의 약어입니다. the <ESC>[
및 the는 m
ANSI 터미널 제어 시퀀스의 하위 집합인 ANSI 색상 제어 시퀀스의 시작 및 끝 태그입니다. 대부분은 숫자로 시작 <ESC>[
하고 그 뒤에 구현되는 기능을 나타내는 문자가 옵니다(예: 커서를 줄로 이동, 줄 끝까지 지우기, 커서를 저장된 위치로 되돌리기 등).