转义字符\033(设置终端的字体显示效果)

以下内容源于网络资源的学习与整理,如有侵权请告知删除。

参考博客

命令行特殊显示效果\033和发声音\007_华硕他哥的博客-CSDN博客

'\033'格式:指定输出格式_51CTO博客_wkt格式

一、\033的说明 

关于ASCII字符的那些事儿中提到,ASCII字符可以使用前面带反斜杠的八进制或者十六进制数字来表示单个字符。

这里的\033就是这个意思,反斜杠后面的033是八进制,化为十进制是27,对应着ASCII字符集表格上十进制编号为27的字符,即ESC。这个字符用来控制打印机的输出格式。

二、设置显示效果 

1、格式说明 

在linux中,我们可以利用这个字符来设置终端上的字体显示效果。

比如使用echo命令并利用\033控制字体显示效果的格式如下:

扫描二维码关注公众号,回复: 14714776 查看本文章

echo -e "\033[参数1;参数2;参数3m要显示的内容\033[0m

(1)\033[参数1;参数2;参数3m,是控制码的写法,表明后面待显示内容的格式。

(2)参数1表示字体背景颜色,可选值为40~49、100~107;参数2表示字体颜色,可选值为30~39、90~97;参数3表示显示效果,可选值为0~8。这些数字的含义见附录。

(3)要显示的内容中可以有变量的引用,显示的时候会展开变量的内容。

(4)\033[0m是具体的控制码,表明关闭所有属性。如果在格式最后没有添加这个控制码来关闭所有属性,那么“\033[字体背景颜色;字体颜色m”所设置的格式将应用于接下来的所有显示。当然也可以根据需要修改这个具体的控制码,但一般不这么做。

2、注意事项

(1)如果没有设置字体背景颜色这个内容,则不需要添加字体颜色之前的分号。可以自动根据这个数字所处的范围,推出这个数字是用来表示字体背景颜色,还是用来表示字体颜色,或者其他设置,因为不同项目的设置所用的数字范围不同。

比如echo -e "\033[36mwhat's your name:\033[0m"的显示效果如下:

(2)字母m和结尾\033[0m之间的内容,就是要显示在终端的内容。字母m后面如果紧跟着空格,那么也会被当做字符输出。

(3)如果要显示的内容结尾是某个特殊符号(比如!)则可能会报错,需要在这个特殊符号与\033[0m之间输入一个空格。

附录

(1)字体颜色设置说明(斜杆前后的数字表示同一种颜色,但斜杆后面的数字让颜色更亮)。

数字 描述
30\90 黑色

31\91

红色
32\92 绿色
33\93 黄色
34\94 蓝色
35\95 紫色
36\96 深绿
37\97 白色

(2)字体背景颜色设置说明(斜杆前后的数字表示同一种颜色,但斜杆后面的数字让颜色更亮)

数字 描述
40\100 黑色

41\101

红色
42\102 绿色
43\103 黄色
44\104 蓝色
45\105 紫色
46\106 深绿
47\107 白色

(3) 控制码说明

控制码 含义
\033[0m 关闭所有属性 
\033[1m 设置高宽度
\033[4m 下划线 
\033[5m 闪烁 
\033[7m 反显
\033[8m 消隐
\033[30m ~ \033[37m   设置前景色
\033[40m ~ \033[47m 设置背景色
\033[nA   光标上移n行
\033[nB 光标下移n行 
\033[nC 光标右移n行 
\033[nD 光标左移n行 
\033[y;xH 设置光标位置 
\033[2J 清屏 
\033[K 清除从光标到行尾的内容 
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标

猜你喜欢

转载自blog.csdn.net/oqqHuTu12345678/article/details/129327297
今日推荐