曲径通幽论坛

标题: 添加颜色 [打印本页]

作者: beyes    时间: 2011-5-6 09:01
标题: 添加颜色
可以通过一些特殊的控制字符给输出内容上色及加上一些显示效果(斜体,下划线,闪烁等),比如:



要产生有色的文本,必须经过某些特殊字符的控制,这些特殊控制字符被称为 CSI (control sequence indicatior),即控制序列指示器。CSI 告诉终端这些数据代表一种转义码,而非要输出的文本。比如上面的输出中 ^[[43m 和 ^[[0m 就是转义码。


需要注意的是,这些转义码并不是直接按顺序敲打出 ^, [ ,43, m 这样的符号,其输出方法是:
Ctrl + V 输出 ^[  ---> 直接通过键盘输出 [ ---> 接控制码 ---> 小写字母 m


这些控制码参数有 3 类:
其中,前景色和背景色都需要使用两位数代码来表示。前景色用 3 来开头,而背景色用 4 来开头,第 2 位数则表示具体的颜色,这些颜色控制码如下表所示:


代码表示的颜色
0黑色
1红色
2绿色
3黄色
4蓝色
5洋红色
6青色
7白色


比如像我们上面要输出具有黄色背景色的代码为:^[[43m


此外,还可以为显示增加一些效果,控制代码如下表所示:
代码控制效果
0重置为普通模式
1设置为强亮度
2设置为弱亮度
3使用斜体
4使用单下划线
5使用慢闪烁
6使用快闪烁
7背景,前景色反转
8将前景色设置为背景色(文字不可见)


比如,要使用有下划线效果的输出:
[beyes@SLinux menu]$ echo ^[[4mHello colorful world^[[0m
Hello colorful world



同时设置前景色和背景色:



这里需要注意一个问题,像这种在一个 ccho 命令中放置两个转移控制码的,要用双引号将整个输出括起来,否则 echo 不能正确解释转义码,进而会输出错误信息。


上面的输出中都使用了一个技巧,就是在输出字符串的末尾都使用了 ^[[0m 进行控制,其意就是在输出特殊此效果后将环境重置为普通模式。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2