在Linux下调试信息输出自定义颜色字体

Date2015.5.15  Author:杨  QQ1209758756[email protected]

 


 

       在Linux环境下进行软件开发时,调试是经常做的事情,为了让调试信息更加清晰方便,这里讲解如何输出带有自定义的颜色字体,比如可以自定义输出颜色为红,绿,蓝等,与其他打印信息区分开来。

       首先讲解在shell脚本中的应用:

在shell中使用echo命令输出带颜色的文本
名称
       echo - 显示一行文本

概要
       echo [选项]... [字符串]...

描述
       向标准输出输出字符串。

       -n     不输出换行符

       -e     打开反斜杠ESC转义

       -E     取消反斜杠ESC转义 (默认)

       --help 显示帮助

       --version 显示版本

注意要输出颜色必须有 -e 选项。

 

然后说一下重点:ANSI控制码在输出有颜色文本方面应用。

-e 用来开启echo中的转义
\e 或 \033 来输出Esc符号
设置颜色的格式: \e[背景色;前景色;高亮m
              \033[背景色;前景色;高亮m
恢复默认为 \e[0m ,如果不加这个,那么后面的输出将一直保持当前的颜色。
其中背景色可以被以下数字替换
第一个参数:
0 透明(使用终端颜色),1 高亮 40 黑, 41 红, 42 绿, 43 黄, 44 蓝 45 紫, 46 青
绿, 47白(灰)
第二个参数:
前景色(也就是文本的颜色)可以被以下数字替换
30 黑 31 红, 32 绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰)
第三个参数:
高亮是1,不高亮是0
第四个参数为m:
注意m后面紧跟字符串。

实例:
1,输出红色字体 abc,背景色不变,以下三个效果一样
echo -e ‘\033[0;31;1m abc \033[0m‘
echo -e "\e[1;31m     abc \e[0m"
echo -e "\e[0;31;1m   abc \e[0m"

2,输出黄色字体 abc,红色背景色,以下三个效果一样
echo -e ‘\033[41;33;1m abc \033[0m‘
echo -e "\e[41;33m     abc \e[0m"
echo -e "\e[41;33;1m   abc \e[0m"

30 黑 31 红, 32 绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰)
echo -e "\e[1;30m skyapp exist \e[0m"//黑色
echo -e "\e[1;31m skyapp exist \e[0m" //红色
echo -e "\e[1;32m skyapp exist \e[0m" //绿色
echo -e "\e[1;33m skyapp exist \e[0m" //黄色
echo -e "\e[1;34m skyapp exist \e[0m" //蓝色
echo -e "\e[1;35m skyapp exist \e[0m" //紫色
echo -e "\e[1;36m skyapp exist \e[0m" //青绿
echo -e "\e[1;37m skyapp exist \e[0m" //白(灰)

嵌入式中用一下方法:
echo -e "^[[1;30m skyapp exist ^[[0m"//黑色
echo -e "^[[1;31m skyapp exist ^[[0m"//红色
echo -e "^[[1;32m skyapp exist ^[[0m"//绿色
echo -e "^[[1;33m skyapp exist ^[[0m"//黄色
echo -e "^[[1;34m skyapp exist ^[[0m"//蓝色
echo -e "^[[1;35m skyapp exist ^[[0m"//紫色
echo -e "^[[1;36m skyapp exist ^[[0m"//青绿
echo -e "^[[1;37m skyapp exist ^[[0m" //白(灰)
注意:^[  的输入方法是ctrl+v键,再按ESC键

 

最后在C语言中的使用:

[kernel@localhosttest]$ cat color.c

/*********************************************************************************

 *     Copyright:  (C) 2015 YangZheng<[email protected]

 *                  All rights reserved.

 *

 *      Filename:  color.c

 *   Description:  This file

 *                

 *       Version:  1.0.0(04/14/2015~)

 *        Author:  Yang Zheng<[email protected]>

 *     ChangeLog:  1, Release initialversion on "04/14/2015 12:05:38 PM"

 *                

 ********************************************************************************/

 

#include<stdio.h> 

#include<stdlib.h> 

 

#defineNONE                                   "\033[m" 

#defineRED                 "\033[0;32;31m" 

#defineLIGHT_RED               "\033[1;31m" 

#defineGREEN                   "\033[0;32;32m" 

#defineLIGHT_GREEN            "\033[1;32m" 

#defineBLUE                     "\033[0;32;34m" 

#defineLIGHT_BLUE              "\033[1;34m" 

#defineDARY_GRAY             "\033[1;30m" 

#defineCYAN                     "\033[0;36m" 

#defineLIGHT_CYAN             "\033[1;36m" 

#definePURPLE                   "\033[0;35m" 

#defineLIGHT_PURPLE           "\033[1;35m" 

#defineBROWN                  "\033[0;33m" 

#defineYELLOW                 "\033[1;33m" 

#defineLIGHT_GRAY             "\033[0;37m" 

#defineWHITE                    "\033[1;37m" 

   

intmain()

{

        printf(CYAN "Current function is%s.\n", __FUNCTION__); 

        printf(GREEN "Current line is%d.\n" NONE, __LINE__); 

        return EXIT_SUCCESS; 

}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。