【shell-09】 shell控制台颜色输出

发布时间:2024年01月23日

echo -e 一个重要的小例子

echo -e 的意思:如果字符串中出现某些特定的字符组合(转义字符),echo会将这些字符组合解释为特殊的含义,而不是将其作为普通文本输出。

ASCII 编码表,中前三十个左右都是控制字符,控制字符的意思是可以实现一些控制,比如换行等。
其中有一个字符是控制终端颜色的,十进制就是 27,ASCII还有两个字符:0 和x 表示转义字符,意思是0或是x后面紧跟的字符作用是实现控制,而不是直接输出。
比如:

echo -e "bbb \n aaa"  
echo -e "bbb \012 aaa"
echo -e "bbb \xA aaa"
上面三种的输出是一样的

分析->这里的 \012 意思就是12这个数字是是实现做控制的,\0作为控制标志位,指的就是八进制,\012 用八进制实现的控制,实际上转成十进制就是->10 找到下图中,10对应的就是**\n**, 同理\x也是控制位标志符,指的是用十六进制, 10 的八进制是12,十六进制是 A
因此\012 和\xA 都是表示换行。

在这里插入图片描述

和换行符控制字符一样,终端颜色也有自己的十进制控制符

数字 27 对应的就是颜色中断控制。 我们想要控制的话就用: \033 或者\x1b 二者转成十进制都是 27 都是对颜色的控制

echo -e "\033[32m 测试 \033[0m"
echo -e "\x1b[32m 测试 \033[0m"

两种写法都一样,我们只分析八进制的写法吧:
1. \033 开启颜色渲染
2. [32m 是固定写法,意思背景色设为绿色, 此时你的shell终端字体背景色会一直是绿色
3. \033[0m 的意思是再次开终端颜色控制,颜色设为终端默认。这样就恢复原样了

分析:echo -e 的意思:如果字符串中出现某些特定的字符组合(转义字符),echo会将这些字符组合解释为特殊的含义,而不是将其作为普通文本输出。

颜色的写法

[显示方式;前景色;背景色m

显示方式           意义
-------------------------
0                终端默认设置
1                高亮显示
4                使用下划线
5                闪烁
7                反白显示
8                不可见

\033[1;31;40m    含义是:1->高亮显示 31->前景色红色  40->背景色黑色

颜色参考图表

在这里插入图片描述

参考:shell终端颜色

文章来源:https://blog.csdn.net/qq_36066039/article/details/135782184
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。