1. 사용 명령어 |
(1) echo
2. 키워드 & 사용처 |
(1) 키워드
터미널, 색상
(2) 사용처
메시지 표시에 문자색을 변경하거나 반전시키는 등 주의나 강조를 하고 싶을 때 사용합니다.
3. 실행 예제 |
$ ./color.sh
Script Start.
Importan Message <- 색이 변함
Script End.
4. 스크립트 |
#!/bin/sh
echo "Script Start."
# 배경을 흰색(47), 문자색을 빨강(31)으로 변경
echo -e "\033[47;31m Important Message \033[0m" ①
echo "Script End."
5. 해설 |
이 스크립트는 "Important Message"라는 문자열을 흰색 배경에 빨강으로 표시합니다. 셸 스크립트에서 문자열을 표시할 때 echo 명령어를 사용합니다. 이때 메시지 일부를 강조하거나 주의를 끌고 싶다면 -e 옵션을 지정해서 이스케이프 시퀀스라는 제어 코드로 표시할 문자에 색을 입힐 수 있습니다. 이스케이프 시퀀스 작성법은 다음처럼 이스케이프를 나타내는 \033[와 m 사이에 색상 파라미터를 지정합니다.
\033[파라미터m 표시할 문자열 \033[0m
예를 들어 단순히 문자색을 빨강(31번)으로 표시하려면 다음과 같습니다.
\033[31m 표시할 문자열 \033[0m
파라미터를 여러 개 지정할 때는 ;(세미콜론) 으로 나열합니다. ①에서는 파라미터로 31번(문자색을 빨강)과 47번(배경색을 흰색)을 합쳐서 지정합니다.
문자색 지정을 초기화하려면 0번을 지정하여 \033[0m 이라고 작성합니다. 이렇게 하지 않으면 그 이후 모든 문자색이 변하므로 ①처럼 문자열 끝에 작성하는 것이 일반적입니다. 색 지정 번호는 30번대가 문자색(Foreground Color), 40번대가 배경색(Background Color)입니다.
구분 | 검정 | 빨강 | 초록 | 노랑 | 파랑 | 보라 | 하늘색 | 흰색 |
문자색 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
배경색 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
이런 번호는 리눅스라면 "man console_codes", FreeBSD라면 "man screen"으로 확인 가능한 콘솔 이스케이프 시퀀스 설명서에 나와 있습니다.
<주의사항>
- 이스케이프 시퀀스를 쓰면 다양한 색으로 꾸밀 수 있지만 사용 환경에 따라서는 어지럽기만 한 결과가 될 수도 있습니다. 색상 강조는 어디까지나 보조 용도로만 쓰기 바랍니다.
- 환경에 따라서는 echo 명령어를 쓸 때 이스케이프 시퀀스를 해석하는 -e 옵션이 필요 없기도 합니다. Mac OS X의 sh나 우분투처럼 /bin/dash가 sh인 리눅스가 해당합니다. 이런 환경에서는 다음처럼 -e 옵션이 없어도 echo에서 색상이 변경됩니다.
echo "\033[47;31m Important Message \033[0m"
참고서적 : 유닉스 리눅스 셸 스크립트 예제 사전
'IT 이야기 > Linux 셸 스크립트' 카테고리의 다른 글
[Linux 셸 스크립트] 사용자 인터페이스 - 010 파일 압축 시 실행 상태를 표시하는 진행바 표시하기 (0) | 2021.03.04 |
---|---|
[Linux 셸 스크립트] 사용자 인터페이스 - 009 달력을 이용해 특정 날짜의 로그 파일 삭제하기 (0) | 2021.03.03 |
[Linux 셸 스크립트] 사용자 인터페이스 - 007 선택식 메뉴를 표시해서 입력된 숫자값 처리하기 (0) | 2021.03.03 |
[Linux 셸 스크립트] 사용자 인터페이스 - 006 파일을 읽어서 처리할 때 키보드에서 입력받기 (0) | 2021.03.03 |
[Linux 셸 스크립트] 사용자 인터페이스 - 005 사용자 키 입력을 한 글자만 받기(Enter 키 불필요) (0) | 2021.03.02 |
댓글