본문 바로가기

Linux/Ubuntu

Ubuntu(Linux) echo 명령어를 이용한 출력 내용 색상 변경

Ubuntu(Linux)에서 echo를 이용해 다양한 메시지를 출력하곤 한다.

때론 출력 내용이 너무 많기 때문에 출력 내용을 파악하기 어려운 경우가 있다.

이럴 경우 출력 내용에 색상을 주면 보다 손쉽게 확인이 가능하다.

echo에서 출력 내용에 색상을 입히는 방법을 알아보자.

 

출력 내용에 색상을 입히는 기본 적인 예제는 아래와 같다.

$ echo -e "\033[31m"Test"\033[0m"

 

위 명령어 각각의 설명은 다음과 같다.

 echo : echo 명령어

-e : 백슬래쉬가 들어가는 특수문자를 처리하겠다는 옵션

"\033[31m" : 글자 색상을 빨간색으로 하는 부분

Test : 출력 할 내용

"\033[0m" : 글자 색상을 원래대로 돌리는 부분

 

글자 색상을 변경하는 부분의 각 설명은 아래와 같다.

\033[ : ANSI escape code(escape sequences)의 시작을 알림, 색상 입히는 시작 표시

31 : SGR(Select Graphic Rendition) parameters, 실제 색상 적용 내용

m : ANSI escape code(escape sequences)의 끝

변경 된 색상은 계속 남아있기 때문에 \033[0m를 이용하여 기본 값으로 복원한다.

 

위의 내용을 보면 알겠지만 31이 빨간색을 의미한다.

자주쓰이는 색상의 실제 사용 결과는 아래와 같다. 31 ~ 36

 

기본 예제를 약간 변경해 보자.

$ echo -e "\033[31;1m"Test"\033[m"

;를 사용하면 한번에 여러 값을 줄 수 있다. 위에 사용된 1은 굵게하는 값이다.

따라서 글자가 붉고 굵게 출력된다.

뒤의 \033[m에선 앞에서 썼던 0이 빠졌는데, 0을 생략해도 초기화는 잘 된다.

보다 다양한 파라메터(밑줄긋기, 이탤릭 등등)를 사용하고 싶다면,

http://en.wikipedia.org/wiki/ANSI_escape_code 에서 SGR(Select Graphic Rendition) parameters 표를 참고하면된다.

 

[참고자료]

echo (command) : http://en.wikipedia.org/wiki/Echo_(command))
ANSI escape code : http://en.wikipedia.org/wiki/ANSI_escape_code