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

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

参考博客

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

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

一、\033的说明 

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

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

二、设置显示效果 

1、格式说明 

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

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

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显示光标
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天糊土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值