linux终端输出颜色

用到一些编译工具,在输出编译信息时,编译通过的信息用绿色输出,错误信息用红色输出。我觉得这个特性很有趣,自己在写一些控制程序,或者批处理脚本时,如果能给输出加上提示色,应该看起来更直观一些。在网上查了一些资料,其实这个特性比较容易使用,写下来备忘。

首先看一下以下数字代码。第一张表中数字代表颜色,第二章表中的数字代表行为。注意前景某色和背景某色不是同一个数字。

 前景              背景               颜色

---------------------------------------

   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"用于恢复默认属性。如果没有恢复默认属性,以后输出都按最后一次设置的方式来。

原文地址:https://www.cnblogs.com/terencezhou/p/2685223.html