이월드  
Front Page
Tag | Location | Media | Guestbook | Admin   
 
터미널에서 color를 출력할때

유닉스/리눅스 머신에서 터미널에 문자 출력시 Colorful하게

문자를 출력하는법. 물론 외부 라이브러리는 안쓰구여..
피씨통신의 춘추전국시대였던 1990년대 초반에 대화방에서 ansi를
이용하여 현란한 기교를 부려본 경험이 있으신님들은 이미 아시고
계시리라 믿습니다만, 혹시 모르시는 님들을 위해서...

일딴, 아래의 쏘스를 컴팔해서 실행해 보시면 더 이상의 설명이
필요없이 한눈에 알아먹을수가 있으니...성질급한 님들은 바루
시행해 보셔요...
자세한 설명은 소스를 먼저 보구나서 하겠습니다..

========================[color_test.c]========================

#include <stdio.h>

int main(void)
{
int i, j;

printf("\n << Color Code Table >> \n\n");

for(i=40; i <= 47; i++) {
printf("\x1b[0m[%d] ", i);
for(j=30; j <= 37; j++) {
printf("\x1b[%dm\x1b[%dm[%d] ",i ,j ,j);
}
printf("\n");
}

/* 칼라해제 */
printf("\x1b[0m\n");

printf("Example> printf(\"\\x1b[41m\\x1b[33m[BgColor=41, FgColor=33]\\x1b[0m\\n\"); \n");
printf("Result> \x1b[41m\x1b[33m[BgColor=41, FgColor=33]\x1b[0m\n");
printf("\n");
printf("Example> printf(\"\\x1b[44m\\x1b[32m칼라로 나타내고 싶은 메시지\\x1b[0m\\n\"); \n");
printf("Result> \x1b[44m\x1b[32m칼라로 나타내고 싶은 메시지\x1b[0m\n");

printf("\n");

exit(0);
}

===================================================================

실행을 해보셨으면 알겠지만, 칼라 테이블이 쫙~~~ 나옵니다..
여기서 맨 왼쪽의 숫자들은 배경색을 지정할때 사용되고
테이블내의 숫자들은 글자색을 지정할때 사용됩니다.
기본적으루 배경색을 지정하지 않으면 그냥 터미널에 설정된
배경색에 따릅니다..

 

printf()의 따옴표내 출력문자들을 보면 크게 4부분으로 나눌수 있습니다.

\x1b[44m      <---- 배경색 지정(44는 파랑)

\x1b[32m      <---- 글자색 지정(32는 초록)

칼라로 나타내고 싶은 메시지

\x1b[0m        <---- 칼라해제


이렇게 칼라로 찍을때 주의할 점은...마지막에 꼭 색상지정을
해제해야지 안그러면 이후 터미널에 출력되는 모든 문자가 그
칼라값의 영향을 받아서 출력이 됩니다..
해제는 마지막에 "\x1b[0m" 요걸 출력해주면 됩니다.
일딴, 칼라로 출력하는법은 알겠는데... 요걸 어디다 써먹으면
좋을지 궁금하신 분들이 있을것 같은데요...
저는 로그메시지를 찍을때 사용합니다.. 특히 디버깅모드로
로그를 남기도록 해둔 상태에서 몇몇 중요한 값들을 찍을때
칼라로 찍으면 한눈에 알아볼수가 있으니 편합니다..

아참...그리고 위의 칼라 말구도...화면을 컨트롤 할 수 있는
코드가 찾아보면 더 있습니다...가령 문자를 깜박이게 한다든가..
요런건 직접 찾아보세여~~
위 코드를 많이 사용하면 소스가 지저분하게 보이게 되는데요..
그땐 define문을 이용하거나...더 쌈빡하게 하려면 Wrapper함수를
만들어서 사용하시면 소스도 깔끔해 지겠죠?

 

P.S : 단, 시스템 환경변수의 $TERM값에 의해 칼라가 나타나지 않을수 있습니다.

        이럴땐 TERM환경변수의 값을 다른것으로 변경해 보세요.

신고


BLOG main image
 Notice
데이터 정보화
 Category
분류 전체보기 (300)
일상적인 생활 (95)
맛집/여행기 (3)
IT관련 (200)
 TAGS
검색쿼리 사이트분석 설치 프리마커 php 소스 유분투 프로세서 영어숙어 c소스 검색엔진 포탈업체 영어상식 Perl 분석 ubuntu 사이트 분석 분산시스템 IR 문자열 변환 정보검색 pstree 영어공부 ip변환 Code Reading 오라클 오늘의 뉴스 Diquest 업체분석 AWK 랩핏 apache search engine 쉘스크립트 굴욕예방 PageRank 굴욕예방 영어 C 아파치
 Calendar
«   2017/04   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
 Recent Entries
터미널에서 color를 출력할때
Java에서 Mysql에 데이터를 넣을때 한글이..
jfreeChart에서 한글이 안될때 난 이렇게..
[렙핏체험] 티타임
[랩핏체험] 랩핏 이렇게 활용하자.
[랩핏체험] 랩핏의 존재가 절실히 와 닿는..
랩핏 체험 - 랩핏 체험 개봉샷,
[펌 자료] - 요즘같은 에너지 시대에 조금..
나에게도 이런날이 있구나~~`
저정도는 해야 "야구좀 하는구나" 하는 소..
 Recent Comments
이 블로그를 지속적..
essay help - 2011
잘 보겠슴다
montreal flower delivery - 2009
어떻게 변화될지 다..
montreal flower delivery - 2009
노민입니다. 당첨을..
노민 - 2009
토익시험 성공하시길..
noa - 2009
스피커가 붙어 있으..
noa - 2008
일이 좀 있어서리..
noa - 2008
나도 1세대 쓰다가..
마루날 - 2008
왜 집에 있나요?
마루날 - 2008
중의성이 있는 사이..
noa - 2008
 Recent Trackbacks
make money online f..
make money online f..
Oakley Flak Jacket
Oakley Flak Jacket
칼퇴하는 자가 직장..
스마일 커플로그
cost of breast impl..
cost of breast impl..
d'angle
d'angle
Best Brand name Lap..
Best Brand name Lap..
Make Money Now Onli..
Make Money Now Onli..
Free Ways To Make M..
Free Ways To Make M..
Make Money Online F..
Make Money Online F..
buchen zimmer
buchen zimmer
 Archive
2009/11
2009/06
2009/05
2009/04
2009/03
 Link Site
쩐의시대
마루날-(雜學辭典)
華怡價帽가 하늘을 바라보며
Just for Fun! - 聞香
searchenginewatch.com
시골의사
시골의사 주식투자
Family
소프트웨어 스토리
잡동구리동동
티스토리에서 알려드립니다
 Visitor Statistics
Total : 65,119
Today : 16
Yesterday : 44
rss
 

티스토리 툴바