Shell 颜色和闪烁控制

在Shell下有时候需要定制输出,比如给输出加上颜色,或者显示高亮,或者添加闪烁等。
然后这些颜色代码或者控制码等相对不好记住。这个时候我们可以考虑把最终想要的结果制定成对应的函数,
在使用的时候直接调用函数会方便很多

格式

echo -e "\033[字背景颜色;字体颜色m字符串\033[控制码"

定制颜色函数

## blue to echo
function blue(){
echo -e "\033[34m[ $1 ]\033[0m"
} ## green to echo
function green(){
echo -e "\033[32m[ $1 ]\033[0m"
} ## Error to warning with blink
function bred(){
echo -e "\033[31m\033[01m\033[05m[ $1 ]\033[0m"
} ## Error to warning with blink
function byellow(){
echo -e "\033[33m\033[01m\033[05m[ $1 ]\033[0m"
} ## Error
function bred(){
echo -e "\033[31m\033[01m[ $1 ]\033[0m"
} ## warning
function byellow(){
echo -e "\033[33m\033[01m[ $1 ]\033[0m"
}

可以把这些函数写入到一个公共的SHELL脚本中,每次在编写其他脚本的时候用如下方式调用,即可

source /root/bin/common

或者可以把上述代码直接粘贴到当前编写的脚本中去。

当然可以推荐第一种方式。不用每次都复制粘贴。 直接 source 调用 即可

举例

root@pts/4 $ cat /root/bin/common
#!/usr/bin/env bash ## blue to echo
function blue(){
echo -e "\033[35m[ $1 ]\033[0m"
} ## green to echo
function green(){
echo -e "\033[32m[ $1 ]\033[0m"
} ## Error to warning with blink
function bred(){
echo -e "\033[31m\033[01m\033[05m[ $1 ]\033[0m"
} ## Error to warning with blink
function byellow(){
echo -e "\033[33m\033[01m\033[05m[ $1 ]\033[0m"
} ## Error
function red(){
echo -e "\033[31m\033[01m[ $1 ]\033[0m"
} ## warning
function yellow(){
echo -e "\033[33m\033[01m[ $1 ]\033[0m"
}
Dev-web-solr [/opt/hexo2] 2016-11-28 17:52:03
root@pts/4 $ cat /root/bin/test.sh
#!/usr/bin/env bash source /root/bin/common green "hello world with green color"
blue "hello world with blue color" bred "error info with blink"
byellow "warning info with blink"

测试结果如下所示

 
shell-color-1.png
 
shell-color-2.png

附加 shell输出 字体背景颜色和字体颜色,控制码等参数

字体背景颜色

40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色

字体颜色

30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色

控制码

这里常用有 设置高亮度/下划线/闪烁/关闭所有属性

\33[0m 关闭所有属性
\33[01m 设置高亮度
\33[04m 下划线
\33[05m 闪烁
\33[07m 反显
\33[08m 消隐
\33[30m -- \33[37m 设置前景色
\33[40m -- \33[47m 设置背景色
\33[nA 光标上移n行
\33[nB 光标下移n行
\33[nC 光标右移n行
\33[nD 光标左移n行
\33[y;xH设置光标位置
\33[2J 清屏
\33[K 清除从光标到行尾的内容
\33[s 保存光标位置
\33[u 恢复光标位置
\33[?25l 隐藏光标
\33[?25h 显示光标
实际配置:
 
 echo -e "\033[31m\033[01m [   old tomcat kill failed  ]\033[0m"     红色
 
 

echo -e "\033[32m[ kill old tomcat success with pid: $tomcat_pid ]\033[0m"    绿色

 

作者:全栈运维
链接:https://www.jianshu.com/p/ba1b8aded634
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最新文章

  1. nginx中将POST数据写到日志里面的正确方式
  2. supervisor拉起daemon进程(falcon-agent)测试
  3. CALayer 的 position和anchorPoint属性
  4. [转载]mininet的安装和使用
  5. PHP中取出字符串中的空格 逗号
  6. [RxJS] Basic DOM Rendering with Subscribe
  7. Python : 熟悉又陌生的字符编码(转自Python 开发者)
  8. DataTable.AcceptChanges方法有何用处
  9. mongodb数据库安装
  10. 关于字数太多直接变成省略号的方法css
  11. 20165232 实现pwd
  12. CSAPP:第八章 异常控制流1
  13. 细说shiro之五:在spring框架中集成shiro
  14. Charles基本使用
  15. IOS初级:story board的跳转
  16. Netty精粹之JAVA NIO开发需要知道的
  17. Uboot的bad_save_user_regs
  18. Redis 4.0.X版本reshard出现错误的解决办法
  19. CS小分队第一阶段冲刺站立会议(5月14日)
  20. (一)Mina源代码解析之总体架构

热门文章

  1. java面试(集合类)03
  2. Linux日常之命令sed
  3. php扩展安装,指定新的openssl
  4. 上传图片,正在加载,loading
  5. DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强
  6. create-react-app踩坑记
  7. xgboost使用细节
  8. 【leetcode】Valid Palindrome II
  9. shell练习--PAT题目1008:数组元素循环右移问题 (失败案例,运行超时)
  10. 拉链法解决hashtable冲突问题