echo 在shell及脚本中显示色彩及闪烁警告效果
在shell脚本编写中,echo用于输出字符串等提示信息,当我们需要格外显示色彩及闪烁效果如下:
一、在执行shell中显示色彩:
语法格式:
echo -e "\033[颜色1:颜色2m 要展示的文字 \033[0m"
说明:
- -e选项:表示允许反斜杠(对字符)转义。
- \033[颜色1;颜色2m:称为转义序列,它本身是一个整体,中间不要有空格。
- \033[:转义序列的开始。其中\033代表Esc符号,也可以使用\E或\e来代替。
- 颜色1和颜色2:表示字体的前景色或背景色,至于颜色1和颜色2哪一个表示前景色,哪一个表示背景色,由其设定的数值来决定,前景色和背景色的数值空间是不同的。
- m:转义序列的终止标志。
- \033[0m:表示将颜色恢复回原来的配色。
我们可以用一张原理图来理解:
所涉及的颜色如下:
二、在shell脚本中显示色彩
①定义颜色变量
1 [root@bqh-117 scripts]# vim echoys.sh 2 #!/bin/sh 3 #定义颜色变量 4 RED='\E[1;31m' # 红 5 GREEN='\E[1;32m' # 绿 6 YELOW='\E[1;33m' # 黄 7 BLUE='\E[1;34m' # 蓝 8 PINK='\E[1;35m' # 粉红 9 RES='\E[0m' # 清除颜色 10 11 #用echo -e来调用 12 echo -e "${RED} this is red color ${RES}" 13 echo -e "${GREEN} this is green color ${RES}" 14 echo -e "${YELOW} this is red yelow ${RES}" 15 echo -e "${BLUE} this is blue color ${RES}" 16 echo -e "${PINK} this is pink color ${RES}"
②定义颜色动作
1 [root@bqh-117 scripts]# vim echoys1.sh 2 #!/bin/sh 3 #定义颜色动作, 把echo -en也定义到变量中 4 SETCOLOR_SUCCESS="echo -en \\E[1;32m" 5 SETCOLOR_FAILURE="echo -en \\E[1;31m" 6 SETCOLOR_WARNING="echo -en \\E[1;33m" 7 SETCOLOR_NORMAL="echo -en \\E[0;39m" 8 9 #使用时直接调用颜色动作即可 10 $SETCOLOR_SUCCESS && echo SUCCESS 11 $SETCOLOR_FAILURE && echo FAILURE 12 $SETCOLOR_WARNING && echo WARNING 13 $SETCOLOR_NORMAL && echo NORMAL
说明:
第二种方法和第一种方法的思路类似,唯一不同的是我们把 echo 也加入到了定义中。这样用时不用频繁输入 echo 了,不过,需要注意其中的一些细节:
1)需要增加-n
选项,这样引用时不会出现换行的问题。
2)\\
本质是\
,在双引号中反斜线符号一定要写成\\
。
3)引用变量要放到其他语句前面,并使用&&
连接。
三、在shell中显示颜色并提示闪烁警示:
1 [root@bqh-117 scripts]# vim echoys.sh 2 #!/bin/sh 3 #定义颜色变量 4 RED='\E[1;31m' # 红 5 GREEN='\E[1;32m' # 绿 6 YELOW='\E[1;33m' # 黄 7 BLUE='\E[1;34m' # 蓝 8 PINK='\E[1;35m' # 粉红 9 SHAN='\E[33;5m' #黄色闪烁警示 10 RES='\E[0m' # 清除颜色 11 12 #用echo -e来调用 13 echo -e "${SHAN} this is yelow flashing warning ${RES}" #黄色闪烁警示调用效果 14 echo -e "${GREEN} this is green color ${RES}" 15 echo -e "${YELOW} this is red yelow ${RES}" 16 echo -e "${BLUE} this is blue color ${RES}" 17 echo -e "${PINK} this is pink color ${RES}"
ok ,以上用法相信在今后的shell中会带来很多色彩,让用户有一个更高的视觉效果。