shell echo 控制字体与字体背景颜色
Posted peak wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell echo 控制字体与字体背景颜色相关的知识,希望对你有一定的参考价值。
echo -e 可以控制字体颜色和背景颜色输出
从一个例子开始:
# echo -e "\\e[1;33;41m test content \\e[0m"
输出效果:
1. \\e 转义起始符,定义一个转义序列, 可以使用 \\033代替 2. [ 表示开始定义颜色 3. 1表示高亮,33表示字体颜色为黄色,45表示背景色为红色 4. “test content” 属于文字内容 5. m 转义终止符,表示颜色定义完毕 6. 再次使用 \\e[ ,表示再次开启颜色定义,0表示使用默认的颜色,m表示颜色定义结束,所以 \\e[0m 的作用是恢复之前的配色方案
一、字体颜色
字体颜色:30——37
默认=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,紫色=35,天蓝色=36,白色=3
[root@k8s-node02 test]# echo -e "\\e[30m test content黑 \\e[0m" test content黑 [root@k8s-node02 test]# echo -e "\\e[31m test content红 \\e[0m" test content红 [root@k8s-node02 test]# echo -e "\\e[32m test content绿 \\e[0m" test content绿 [root@k8s-node02 test]# echo -e "\\e[33m test content黄 \\e[0m" test content黄 [root@k8s-node02 test]# echo -e "\\e[34m test content蓝 \\e[0m" test content蓝 [root@k8s-node02 test]# echo -e "\\e[35m test content紫 \\e[0m" test content紫 [root@k8s-node02 test]# echo -e "\\e[36m test content天蓝 \\e[0m" test content天蓝 [root@k8s-node02 test]# echo -e "\\e[37m test content白 \\e[0m" test content白
输出效果:
二、字背景颜色
字背景颜色:40——47
默认=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,紫色=45,天蓝色=46,白色=47
[root@k8s-node02 test]# echo -e "\\e[40m test content黑 \\e[0m" test content黑 [root@k8s-node02 test]# echo -e "\\e[41m test content红 \\e[0m" test content红 [root@k8s-node02 test]# echo -e "\\e[42m test content绿 \\e[0m" test content绿 [root@k8s-node02 test]# echo -e "\\e[43m test content黄 \\e[0m" test content黄 [root@k8s-node02 test]# echo -e "\\e[44m test content蓝 \\e[0m" test content蓝 [root@k8s-node02 test]# echo -e "\\e[45m test content紫 \\e[0m" test content紫 [root@k8s-node02 test]# echo -e "\\e[46m test content天蓝 \\e[0m" test content天蓝 [root@k8s-node02 test]# echo -e "\\e[47m test content白 \\e[0m" test content白
输出效果:
三、黑底彩色
黑底彩色:90——97
黑=90 深红=91 绿=92 黄色=93 蓝色=94 紫色=95 深绿=96 白色=97
[root@k8s-node02 test]# echo -e "\\e[90m test content黑 \\e[0m" test content黑 [root@k8s-node02 test]# echo -e "\\e[91m test content红 \\e[0m" test content红 [root@k8s-node02 test]# echo -e "\\e[92m test content绿 \\e[0m" test content绿 [root@k8s-node02 test]# echo -e "\\e[93m test content黄 \\e[0m" test content黄 [root@k8s-node02 test]# echo -e "\\e[94m test content蓝 \\e[0m" test content蓝 [root@k8s-node02 test]# echo -e "\\e[95m test content紫 \\e[0m" test content紫 [root@k8s-node02 test]# echo -e "\\e[96m test content天蓝 \\e[0m" test content天蓝 [root@k8s-node02 test]# echo -e "\\e[97m test content白 \\e[0m" test content白
输出结果:
四、字体控制选项:
\\033[0m 关闭所有属性
\\033[1m 设置高亮度
\\033[4m 下划线
\\033[5m 闪烁
\\033[7m 反显,撞色显示,显示为白色黑底,或者显示为黑底白字
\\033[8m 消影,字符颜色将会与背景颜色相同
\\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 显示光标
五、实例演示
1.示例1:定义颜色变量
# vim color_test1.sh
#!/bin/bash # 定义颜色变量,\\033、\\e、\\E是等价的,都是转义起始符 RED='\\e[1;31m' # 红 GREEN='\\e[1;32m' # 绿 YELLOW='\\033[1;33m' # 黄 BLUE='\\E[1;34m' # 蓝 PINK='\\E[1;35m' # 粉红 RES='\\033[0m' # 清除颜色 echo -e "$RED Red $RES" echo -e "$YELLOW Yellow $RES" echo -e "$BLUE Blue $RES" echo -e "$GREEN Green $RES" echo -e "$PINK Pink $RES"
# source color_test1.sh
2.示例2:定义颜色动作
# vim color_test2.sh
#!/bin/bash # 定义颜色动作 SETCOLOR_SUCCESS="echo -en \\\\E[1;32m" SETCOLOR_FAILURE="echo -en \\\\E[1;31m" SETCOLOR_WARNING="echo -en \\\\E[1;33m" SETCOLOR_NORMAL="echo -en \\\\E[0;39m" # 使用时直接调用颜色动作,跟上相应的内容 $SETCOLOR_SUCCESS && echo test1 $SETCOLOR_FAILURE && echo test2 $SETCOLOR_WARNING && echo test3 $SETCOLOR_NORMAL && echo test4
需要注意其中的一些细节:
(1)需要增加-n选项,这样引用时不会出现换行的问题。 (2)\\\\本质是\\,在双引号中反斜线符号一定要写成\\\\。 (3)引用变量要放到其他语句前面,并使用&&连接。
# source color_test2.sh
六、tput命令
tput 命令会利用 terminfo 数据库中的信息,来控制和更改我们的终端,比如控制光标、更改文本属性、控制屏幕,以及为文本涂色。
其中,为文本涂色的方法是:
1 tput setab:用于设置背景色 2 tput setaf:用于设置前景色 3 sgr0:表示颜色重置
颜色定义如下:
改写 实例演示中的 color_test1.sh
#!/bin/bash # 定义颜色变量,\\033、\\e、\\E是等价的,都是转义起始符 RED=$(tput setaf 1) # 红 GREEN=$(tput setaf 2) # 绿 YELLOW=$(tput setaf 3) # 黄 BLUE=$(tput setaf 4) # 蓝 PINK=$(tput setaf 5) # 粉红 RES=$(tput sgr0) # 清除颜色 echo -e "$RED Red $RES" echo -e "$YELLOW Yellow $RES" echo -e "$BLUE Blue $RES" echo -e "$GREEN Green $RES" echo -e "$PINK Pink $RES"
# source color_test1.sh
以上是关于shell echo 控制字体与字体背景颜色的主要内容,如果未能解决你的问题,请参考以下文章