2017년 10월 16일 월요일

쉘 프롬프트 혹은 출력에 컬러 변경

평소에 우리가 사용하는 터미널(쉘)은 검은 바탕화면에 흰 글자이다.

종종 다른색으로 출력하고 싶을 때가 있다.
쉘은 화면에 출력을 할 때, 컬러를 변경할 수 있다.

% echo -e "\033[31m 글자색:빨강 \033[0m"
 글자색:빨강

출력하고 싶은 글자에 옵션을 주면 원하는 컬러로 출력 가능하다.

옵션은 쉘에서 적용을 받기 때문에,
프로그램을 만들때도 사용 가능하다.

#include <stdio.h>

int main() {
    printf("\033[34m 글자색:파랑 \033[0m\n");
    return 0;
}

 글자색:파랑

칼러 값 변환 테이블이 있으니, 원하는 값으로 설정하면 된다.

출처 : https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

위 테이블에 나와있는 컬러로 출력해보자.

#include <stdio.h>

int main() {
    printf("\x1b[30m"   " Black"          "\x1b[0m" "\n");
    printf("\x1b[31m"   " Red"            "\x1b[0m" "\n");
    printf("\x1b[32m"   " Green"          "\x1b[0m" "\n");
    printf("\x1b[33m"   " Yellow"         "\x1b[0m" "\n");
    printf("\x1b[34m"   " Blue"           "\x1b[0m" "\n");
    printf("\x1b[35m"   " Magenta"        "\x1b[0m" "\n");
    printf("\x1b[36m"   " Cyan"           "\x1b[0m" "\n");
    printf("\x1b[37m"   " White"          "\x1b[0m" "\n");
    printf("\x1b[30;1m" " Bright Black"   "\x1b[0m" "\n");
    printf("\x1b[31;1m" " Bright Red"     "\x1b[0m" "\n");
    printf("\x1b[32;1m" " Bright Green"   "\x1b[0m" "\n");
    printf("\x1b[33;1m" " Bright Yellow"  "\x1b[0m" "\n");
    printf("\x1b[34;1m" " Bright Blue"    "\x1b[0m" "\n");
    printf("\x1b[35;1m" " Bright Magenta" "\x1b[0m" "\n");
    printf("\x1b[36;1m" " Bright Cyan"    "\x1b[0m" "\n");
    printf("\x1b[37;1m" " Bright White"   "\x1b[0m" "\n");
    printf("\n");
    return 0;
}

아래와 같이 결과가 나온다.


※ 컬러를 변경할때 \033 으로 시작을 해도 되고, \x1b 로 시작해도 된다.
※ \033 은 8진수 33을 의미하는 것이고, \x1b 는 16진수를 의미한다.

동일한 원리를 이용하여, 프롬프트도 컬러를 변경할 수 있다.
프롬프트 변경은 $PS1 환경변수를 변경하면 된다.

% export PS1="[\[\e[01;31m\]\u@\h\[\e[00m\] : \[\033[1;34m\]\w ]\n% "

위와 같이 옵션을 원하는대로 변경하면, 프롬프트도 변경할 수 있다.

※ [34;1m 을 [1;34m 으로 표기해도 된다. 순서를 바꿔도 상관없다.



출처
https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
http://blog.muabow.com/entry/C언어-출력에-색깔-입히기
http://jswlinux.tistory.com/145

댓글 없음:

댓글 쓰기

화곡 어쩌라고, 굴사냥

석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...