linux shell 中输出内容,常用echo , echo 有个选项 -e
。 使用开启转义功能。shell中可以输出彩色的文字,也可以把文字的背景设置成彩色的。只要按照固定的书写格式即可。书写的格式就是 \033[3x;4ym文字的内容\033[0m 。
格式的组成 \033[3x;4ym文字的内容\033[0m
- \033 引导非常规字符序列, \033 就是字符
- [3x;4ym 中3x,4y分别是前景色(文字的颜色),和背景色。x和y的取值可以 0 到 7,不同的颜色对应不同的值。
- [3x;4ym 中的 [ 是开始设置的字符, m 是结束设置的字符
- \033[0m 表示取消设置。
需要注意的是,不仅仅可以设置颜色,还可以设置其他的内容。
这里先看一下输出的效果
#!/bin/bash
for i in {0..7}
do
for j in {0..7}
do
echo -e "\033[3${i};4${j}m文字色值 ${i}, 背景色值 ${j}\033[0m"
done
done
输出的效果
颜色代码:
文字的颜色,就是前景色。 前景色,和背景色 数字对应的颜色值是相同的。
颜色代码 | 颜色 |
---|---|
0 | 黑色 |
1 | 红色 |
2 | 绿色 |
3 | 棕色 |
4 | 蓝色 |
5 | 紫色 |
6 | 青色 |
7 | 白色 |
除去颜色,还可以设置, 粗体(1)、一半亮度(2)、下划线(4)、闪烁(5)
这里少个3, 因为3是颜色。
比如, 输出一个下划线
echo -e "\033[4;31;42m文字\033[0m"
我使用qt开发shell 工具,但是控制台输出了这样的字符串,我还没想到什么好办法转义呢!