用到一些编译工具,在输出编译信息时,编译通过的信息用绿色输出,错误信息用红色输出。我觉得这个特性很有趣,自己在写一些控制程序,或者批处理脚本时,如果能给输出加上提示色,应该看起来更直观一些。在网上查了一些资料,其实这个特性比较容易使用,写下来备忘。
首先看一下以下数字代码。第一张表中数字代表颜色,第二章表中的数字代表行为。注意前景某色和背景某色不是同一个数字。
前景 背景 颜色
---------------------------------------
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色
代码 意义
-------------------------
0 OFF
1 高亮显示
4 underline
5 闪烁
7 反白显示
8 不可见
具体使用方式如下。
echo -e "\033[43;31;5m 要用颜色输出的字 \033[0m 默认方式输出的字"
若使用python脚本。
print "\033[43;31;5m 要用颜色输出的字 \033[0m 默认方式输出的字"
其实带颜色的终端文本,是通过“ANSI非常规字符序列”来实现的。“\033[43;31;5m”用于设置属性,\033引导非常规字符序列,m意味着设置属性然后结束非常规字符序列。中间的数字43;31;5用于设置颜色和行为,顺序无所谓,因为设置前景、背景、行为的数字没有重复。"\033[0m"用于恢复默认属性。如果没有恢复默认属性,以后输出都按最后一次设置的方式来。