您的位置:首页 > 运维架构 > Linux

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

2015-05-18 13:58 239 查看
Date:2015.5.15  Author:杨正  QQ:1209758756<yz2012ww@gmail.com>
 

 

       在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<yz2012ww@gmail.com> 

 *                  All rights reserved.

 *

 *      Filename:  color.c

 *   Description:  This file

 *                

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

 *        Author:  Yang Zheng<yz2012ww@gmail.com>

 *     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; 

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: