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

Date:2015.5.15  Author:杨正  QQ:1209758756[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语言中的使用:

[[email protected]]$ 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;

}

时间: 2024-08-22 20:54:33

在Linux下调试信息输出自定义颜色字体的相关文章

利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境

修改XEN的源码实现额外的功能,需要有一个调试环境来得到XEN的调试信息(有关源码编译并安装 XEN 请阅读我以前的博文:在CentOS下源码安装 Xen并搭建Windows虚拟机),这里有一篇很好的搭建方法:Xen Serial Console,可是光阅读它还不够,中间还会遇到许多问题,本博文介绍一下环境搭建的经过,以及遇到的问题的解决办法,希望对大家有用. 得到 XEN 的 Debug String 需要靠串口(Serial Port)来接收并输出,除了使用 RS232 线缆连接两台机器之外

监听按钮点击事件的三种方式实现及调试信息输出的三种方式实现

监听按钮点击事件的三种方式实现: 1.匿名内部类 2.外部独立类 3.接口实现 package com.example.button; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View;

Linux下的输入/输出重定向

Linux环境中支持输入输出重定向,用符号<和>来表示.0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>lee.dat 表示将错误信息输出到文件lee.dat中. 同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现.Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪.这一点非常有用,当我们不需要回显程序的所有信

(转)Linux下的输入/输出重定向

Linux环境中支持输入输出重定向,用符号<和>来表示.0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>lee.dat 表示将错误信息输出到文件lee.dat中.同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现.Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪.这一点非常有用,当我们不需要回显程序的所有信息

如何使用加多宝(jdb)在linux下调试Java程序

毕业时写了一段时间的C,那时候调试使用gdb,后来转了java,当时就想java程序怎么调试,找了一下,果然,那就是jdk自带的jdb windows里是这样的 Linux下是这样的 一般我在linux下来调试Java程序 好,那么,问题来了,这玩意怎么用?有好几种玩法 第一种玩法:以经典的HelloWorld为例,先写一个Java程序,如下: 我们把编译好的类上传到linux下,如下所示 务必强调一下:类所在的包名的层次结构也要在linux下体现出来 下面我们来玩起来,在linux下操作如下

Linux下音频编程-输出音频文件

程序实现了在Linux下播放Ok.wav的功能.程序首先调用fstat函数获得文件相关信息(主要是文件大小信息).通过malloc函数分配指定的内存空间,并将online.wav读入内存:然后,打开声卡设备文件,设置声卡参数:再调用write函数完成文件的播放. 简要的实例,代码如下: #include<unistd.h> #include<fcntl.h> #include<sys/types.h> #include<sys/stat.h> #includ

Linux下中文乱码及中文字体缺失问题的解决

-----------------------------Exception Info---------------------- ----net.sf.jasperreports.engine.util.JRFontNotFoundException: Font '瀹嬩綋' is not available to the JVM. See the Javadoc for more details. -----------font xx not found in linux environmen

【转】js调试信息输出小技巧

原文地址:http://blog.csdn.net/jom_ch/article/details/864574 通常我们在做简单的js调试输出的时候习惯用 alert  函数,这个函数也能解决大多数问题,但遇到如循环输出,滚动条状态监控,鼠标位置等场景的时候,alert就相当的不方便了,下面这个函数可以解决这个问题: [javascript] view plaincopy <script type="text/javascript"> function __js_debug

linux 下调试 汇编

gcc: -c 编译后汇编,不连接 -S 编译后停止,不进行汇编 -o 编译,汇编,连接 -g 生成调试信息 -gstabs 标识符 main gdb break *标识符 :设置断点 info register :参看寄存器 run :运行 list :列出函数行 objdump: -d : 目标代码反汇编 默认text -D :所有代码