基本公式:
echo -e 终端颜色 + 显示内容 + 结束后的颜色
终端颜色格式: \e背景色数值;字体颜色数值m
颜色数值表:
字体颜色数值 | 背景颜色数值 | 颜色 |
30 | 40 | 黑色 |
31 | 41 | 红色 |
32 | 42 | 绿色 |
33 | 43 | 黄色 |
34 | 44 | 蓝色 |
35 | 45 | 紫红色 |
36 | 46 | 青蓝色 |
37 | 47 | 白色 |
注意:不需要背景色的话,则背景色数值为1
例子:
黑底紫红字体,结束后设置的终端颜色为 黑底白字体 :
echo -e "\e[40;35m helloword \e[40;37m"
效果如下图:
看到了上述的效果图,大家肯定发现了个问题,那就是接下来的字体显示,都是黑底白字了,那么要怎么恢复成原来终端显示的白底黑字呢?
大家可能异口同声地答道:“ 背景色数值设置成 白色 不就行了么?”
我只想说,想法是对的,但是做法是错的,我们看个例子:
echo -e "\e[40;35m helloword \e[1;37m"
看效果:
大家都看到了吧,背景还是原来设置的黑色,没有效果!!
可以使用重置命令:
$(tput sgr0)
或者使用echo -e 实现高亮显示的命令中不加上结束后的颜色,而是加上 $(tput sgr0) 命令,命令如下
echo -e "\e[40;35m" "helloword" $(tput sgr0)
效果如下图:
原来设置了背景色之后,要回复是这么麻烦的,那么不设置背景色怎么写呢?
写法如下:
echo -e "\e[1;35m helloword \e[1;34m"
效果如下图: