|
可以通过一些特殊的控制字符给输出内容上色及加上一些显示效果(斜体,下划线,闪烁等),比如:
![]()
要产生有色的文本,必须经过某些特殊字符的控制,这些特殊控制字符被称为 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 进行控制,其意就是在输出特殊此效果后将环境重置为普通模式。 |
|