3. 폰트 색 변경으로 가독성 올리기

 안녕하세요, 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

[색 출력결과]

 

문의사항은 댓글을 달아 주시면 성심껏 답변 드리겠습니다.  

감사합니다.


댓글 없음:

댓글 쓰기

내 리눅스 서버, 대체 뭐가 문제야?

내 리눅스 서버, 대체 뭐가 문제야? 안녕하세요. 오늘은 리눅스 서버가 버벅거릴 때, 원인을 파악하는 방법에 대해 알아보려고 해요. 서버의 성능 저하 원인을 찾는 것은 시스템 관리에서 매우 중요한 부분이에요. CPU, 메모리 사용량부터 수상한 프로...

가장 많이 본 글