在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脚本中显示色彩

①定义颜色变量

 [root@bqh-117 scripts]# vim echoys.sh
#!/bin/sh
#定义颜色变量
RED='\E[1;31m' # 红
GREEN='\E[1;32m' # 绿
YELOW='\E[1;33m' # 黄
BLUE='\E[1;34m' # 蓝
PINK='\E[1;35m' # 粉红
RES='\E[0m' # 清除颜色 #用echo -e来调用
echo -e "${RED} this is red color ${RES}"
echo -e "${GREEN} this is green color ${RES}"
echo -e "${YELOW} this is red yelow ${RES}"
echo -e "${BLUE} this is blue color ${RES}"
echo -e "${PINK} this is pink color ${RES}"

②定义颜色动作

 [root@bqh-117 scripts]# vim echoys1.sh
#!/bin/sh
#定义颜色动作, 把echo -en也定义到变量中
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 SUCCESS
$SETCOLOR_FAILURE && echo FAILURE
$SETCOLOR_WARNING && echo WARNING
$SETCOLOR_NORMAL && echo NORMAL

说明:

第二种方法和第一种方法的思路类似,唯一不同的是我们把 echo 也加入到了定义中。这样用时不用频繁输入 echo 了,不过,需要注意其中的一些细节:

1)需要增加-n选项,这样引用时不会出现换行的问题。

2)\\本质是\,在双引号中反斜线符号一定要写成\\

3)引用变量要放到其他语句前面,并使用&&连接。

三、在shell中显示颜色并提示闪烁警示:

 [root@bqh-117 scripts]# vim echoys.sh
#!/bin/sh
#定义颜色变量
RED='\E[1;31m' # 红
GREEN='\E[1;32m' # 绿
YELOW='\E[1;33m' # 黄
BLUE='\E[1;34m' # 蓝
PINK='\E[1;35m' # 粉红
SHAN='\E[33;5m' #黄色闪烁警示
RES='\E[0m' # 清除颜色 #用echo -e来调用
echo -e "${SHAN} this is yelow flashing warning ${RES}" #黄色闪烁警示调用效果
echo -e "${GREEN} this is green color ${RES}"
echo -e "${YELOW} this is red yelow ${RES}"
echo -e "${BLUE} this is blue color ${RES}"
echo -e "${PINK} this is pink color ${RES}"

ok ,以上用法相信在今后的shell中会带来很多色彩,让用户有一个更高的视觉效果。

最新文章

  1. ECF R9(632E) & FFT
  2. 浅析Java.lang.Process类
  3. wpf 拖图片到窗体
  4. HTML5[4]:去除不必要的标签,完全使用css实现样式
  5. JavaWeb学习之环境搭建
  6. rpm安装mysql 默认安装目录
  7. Linux开发工具之Makefile(上)
  8. python3-day5(模块)
  9. linux服务器之间拷贝文件和文件夹
  10. Hosting WCF Service
  11. 使用mysqldump 对数据库进行备份的乱码问题
  12. H5 web 存储之 Webstorage
  13. css 把图片变为为黑白
  14. TensorFlow练习2: 对评论进行分类
  15. Javascript 堆栈的模拟
  16. Xtrabackup实现Mysql的InnoDB引擎热备份
  17. Spark新手入门——3.Spark集群(standalone模式)安装
  18. django的FormView中,自定义初始化表单数据的曲折方法
  19. C#解析html文档类库HtmlAgilityPack下载地址
  20. poj1308(并查集)

热门文章

  1. does not support SSL connections
  2. [转]玩转Angular2(4)--制作左侧自动定位菜单
  3. 第一册:lesson seventeen。
  4. .NET-ORM框架EF-Code First代码优先
  5. webapi接口发布出错 OwinStartupAttribute
  6. 模块热替换 HMR
  7. 33.QT-UTF8,GBK互转
  8. Eureka开启登录认证
  9. Java垃圾回收器的工作原理
  10. vim编辑器的设置