曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3880|回复: 0
打印 上一主题 下一主题

添加颜色

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2011-5-6 09:01:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
可以通过一些特殊的控制字符给输出内容上色及加上一些显示效果(斜体,下划线,闪烁等),比如:



要产生有色的文本,必须经过某些特殊字符的控制,这些特殊控制字符被称为 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 进行控制,其意就是在输出特殊此效果后将环境重置为普通模式。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-16 10:14 , Processed in 0.077863 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表