안녕하세요, MJ 입니다.
스크립트를 작성하는데에 출력물을 보기 좋게 색깔을 입히는 내용에 대해 설명합니다.
리눅스 배시에서는 ANSI 색상 코드로 터미널에 색깔있는 텍스트를 출력 할 수 있습니다.
echo -e "\033\[스타일;글자색;배경색m<출력할 내용>\033\[0m"
: 이렇게 출력하면 색상/스타일 코드가 적용되어 문자가 출력됩니다.
(명령어 echo 에 -e 옵션을 추가해서 출력해주세요)
출력할때의 형식을 보면, 출력할 내용 이전에 색상을 설정하고,
출력할 내용을 모두 출력 한 뒤에 마지막에 \033[0m 은 모든 색상 정보를 기본으로 되돌리는 부분입니다. 되돌리는 부분을 생략하면, 마지막에 설정 된 색상 정보로 계속 출력 되기때문에
마무리 잘 해 주셔야 합니다.
OK, FAIL 결과를 출력 할 때에,
확인하는 사용자가 정상/실패 에 대한 인지율을 높이는데에 큰 도움이 될 수 있습니다.
[기본 색상 코드]
BLACK=30
RED=31
GREEN=32
YELLOW=33
BLUE=34
PUPPLE=35
GREENBLUE=36
WHITE=37
[배경색 코드]
BG_BLACK=40
BG_RED=41
BG_GREEN=42
BG_YELLOW=43
BG_BLUE=44
BG_PUPPLE=45
BG_GREENBLUE=46
BG_WHITE=47
[스타일 코드]
NORMAL=0 # 모든 색 설정을 원래대로
STRONG=1
UNDERBAR=4
[예시]
STYLE=${UNDERBAR}
FONT=${YELLOW}
BG=${BG_GREEN}
# 변수사용
echo -e "\033\[${STYLE};${FONT};${BG}m<출력할 내용>\033\[0m"
# 상수로 그냥 입력
echo -e "\033\[4;33;42m<출력할 내용>\033\[0m"
경우의 수가 많아서 반복문으로 작성 해 보았습니다. 프롬프트에서 수행 해 보세요~
for k in n 1 4;do
if [ ${k} == "n" ];then
STYLE=
else
STYLE="${k};"
fi
for j in $(seq 40 47);do
BACKGROUND=${j}
for i in $(seq 30 37);do
COLOR=${i}
echo "\$ echo -e \"\\033[${STYLE}${COLOR};${BACKGROUND}mRun-linux, Run\\033[0m\""
echo -e "\033[${STYLE}${COLOR};${BACKGROUND}mRun-linux, Run\033[0m"
done
done
done
[색 출력결과] |
문의사항은 댓글을 달아 주시면 성심껏 답변 드리겠습니다.
감사합니다.
댓글
댓글 쓰기