linux终端打印出各种颜色字体和背景色

妖狐艹你老母 2023-07-17 04:37 152阅读 0赞

在linux终端中,字符颜色和显示方式是由转义序列控制的,是文本模式下的系统显示功能,与具体开发语言并无关系(这就代表,任何开发语言都能够使用这个方法)。

一、转义序列是啥

转义序列以控制字ESC开头,该字符的ASCII码十进制表示为27,十六进制为0x1B,八进制表示为033.多数的转义序列超过两个字符,所以通常以ESC和左括号[开头。该起始序列称为控制序列引导符(CSI,Control Sequence Intro),通常由\033[或者\e[代替。

通过转义序列设置终端显示属性时,可以采用下列格式

  1. \033[ Param { ;Param;...} m
  2. 或者
  3. \e[ Param { ;Param;...}m

其中,\033[或者\e[引导转义序列,m表示设置属性并结束转义。Param为属性值,{...}表示参数是可以多选的,多个参数之间用分号隔开,不限制顺序。

二、详细说明

1、常用例子

先举个最常用的例子:将字体颜色显示为红色

  1. echo -e "\e[31m 红色字 \e[0m"

-e:在echo的时候需要用到-e选项,用于激活特殊字符的解释器。
\e[:引导转义序列
33m:设置红色前景
红色字:输出字符串
\e[0m:用于恢复默认终端输出属性, 否则影响后续输出

2、具体编码说明

显示方式
0:默认值
1:粗体/高亮
2:设置一半亮度
4:下划线
5:闪烁
7:反显、翻转前景色和背景色
22:非粗体
24:无下滑线
25:无闪烁
27:关闭反显

前景色(字体颜色)
30:黑色前景色
31:红色前景色
32:绿色前景色
33:黄色前景色
34:蓝色前景色
35:紫色前景色
36:粉色前景色
37:白色前景色

背景色
40:黑色背景色
41:红色背景色
42:绿色背景色
43:黄色背景色
44:蓝色背景色
45:紫色背景色
46:粉色背景色
47:白色背景色

可以发现显示方式、前景色、背景色的编码都是不一样的,所以可以用这三种属性的编码参数进行组合,多个参数之间用分号隔开,并且编码的前后顺序没有关系。

再来举一个例子收尾:背景色为黄色,前景色为红色,显示方式为闪烁

  1. echo -e "\e[5;43;31m 哈哈哈 \e[0m"

参考文章:
https://www.cnblogs.com/fengliu-/p/10128088.html
https://blog.csdn.net/william\_djj/article/details/84563109
https://www.jianshu.com/p/2ef7d816bee4

发表评论

表情:
评论列表 (有 0 条评论,152人围观)

还没有评论,来说两句吧...

相关阅读