Shell 颜色和闪烁控制

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

格式

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

定制颜色函数

  1. ## blue to echo
  2. function blue(){
  3. echo -e "\033[34m[ $1 ]\033[0m"
  4. }
  5. ## green to echo
  6. function green(){
  7. echo -e "\033[32m[ $1 ]\033[0m"
  8. }
  9. ## Error to warning with blink
  10. function bred(){
  11. echo -e "\033[31m\033[01m\033[05m[ $1 ]\033[0m"
  12. }
  13. ## Error to warning with blink
  14. function byellow(){
  15. echo -e "\033[33m\033[01m\033[05m[ $1 ]\033[0m"
  16. }
  17. ## Error
  18. function bred(){
  19. echo -e "\033[31m\033[01m[ $1 ]\033[0m"
  20. }
  21. ## warning
  22. function byellow(){
  23. echo -e "\033[33m\033[01m[ $1 ]\033[0m"
  24. }

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

  1. source /root/bin/common

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

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

举例

  1. root@pts/4 $ cat /root/bin/common
  2. #!/usr/bin/env bash
  3. ## blue to echo
  4. function blue(){
  5. echo -e "\033[35m[ $1 ]\033[0m"
  6. }
  7. ## green to echo
  8. function green(){
  9. echo -e "\033[32m[ $1 ]\033[0m"
  10. }
  11. ## Error to warning with blink
  12. function bred(){
  13. echo -e "\033[31m\033[01m\033[05m[ $1 ]\033[0m"
  14. }
  15. ## Error to warning with blink
  16. function byellow(){
  17. echo -e "\033[33m\033[01m\033[05m[ $1 ]\033[0m"
  18. }
  19. ## Error
  20. function red(){
  21. echo -e "\033[31m\033[01m[ $1 ]\033[0m"
  22. }
  23. ## warning
  24. function yellow(){
  25. echo -e "\033[33m\033[01m[ $1 ]\033[0m"
  26. }
  27. Dev-web-solr [/opt/hexo2] 2016-11-28 17:52:03
  28. root@pts/4 $ cat /root/bin/test.sh
  29. #!/usr/bin/env bash
  30. source /root/bin/common
  31. green "hello world with green color"
  32. blue "hello world with blue color"
  33. bred "error info with blink"
  34. byellow "warning info with blink"

测试结果如下所示

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

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

字体背景颜色

  1. 40:黑
  2. 41:深红
  3. 42:绿
  4. 43:黄色
  5. 44:蓝色
  6. 45:紫色
  7. 46:深绿
  8. 47:白色

字体颜色

  1. 30:黑
  2. 31:红
  3. 32:绿
  4. 33:黄
  5. 34:蓝色
  6. 35:紫色
  7. 36:深绿
  8. 37:白色

控制码

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

  1. \33[0m 关闭所有属性
  2. \33[01m 设置高亮度
  3. \33[04m 下划线
  4. \33[05m 闪烁
  5. \33[07m 反显
  6. \33[08m 消隐
  7. \33[30m -- \33[37m 设置前景色
  8. \33[40m -- \33[47m 设置背景色
  9. \33[nA 光标上移n
  10. \33[nB 光标下移n
  11. \33[nC 光标右移n
  12. \33[nD 光标左移n
  13. \33[y;xH设置光标位置
  14. \33[2J 清屏
  15. \33[K 清除从光标到行尾的内容
  16. \33[s 保存光标位置
  17. \33[u 恢复光标位置
  18. \33[?25l 隐藏光标
  19. \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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

SHELL输出颜色和闪烁控制的更多相关文章

  1. Shell输出颜色设置

    echo的三个参数 -E  关闭转义(默认) -e  识别转义 -n  不自动输出换行符 Shell识别颜色参数 \033[cor_id1;cor_id2;...]m       \033和\e是相同 ...

  2. shell输出颜色

    #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色范围:- echo -e "\033[30m 黑色字 \033[0m" echo -e "\033 ...

  3. shell输出颜色、printf输出颜色

    1.echo开启彩色输出: -e 开启echo中的转义: \e或者\033来输出Esc颜色: 恢复默认颜色为:\e[0m; 命令格式: echo -e "\e[字背景颜色:文字颜色m字符串\ ...

  4. Linux Shell输出颜色字符学习笔记(附Python脚本实现自动化定制生成)

    齿轮发出咔嚓一声,向前进了一格.而一旦向前迈进,齿轮就不能倒退了.这就是世界的规则. 0x01背景 造了个轮子:御剑师傅的ipintervalmerge的Python版本.觉得打印的提示信息如果是普通 ...

  5. bash shell输出颜色

    http://note.youdao.com/noteshare?id=9de6d5fac6380447df112dff5bc404a1

  6. shell (颜色输出)

    摘自https://www.cnblogs.com/t-road/p/10257296.html #!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色范围:30-37 echo - ...

  7. shell输出加颜色

    shell输出加颜色 #cat a.sh #!/bin/sh blue=`tput setaf 4` reset=`tput sgr0` echo "${blue}[INFORMATION] ...

  8. 让控制台支持 ANSI 转义序列,输出下划线、修改颜色或其他控制

    各种操作系统的控制台都支持 ANSI 转义序列(ANSI Escape Code).使用转义序列,可以对控制台进行很多额外的定制,例如修改颜色.修改标题栏,将文字添加下划线等. 当然,.NET 已经帮 ...

  9. echo 输出颜色

    shell脚本里使用echo输出颜色       echo命令颜色显示: echo:      -n:  不换行.      -e:让转移符生效. \t(tab) \n (换行) 实例: $ echo ...

随机推荐

  1. 脚本_通过进程与端口判断myslq服务

    #!bin/bashif [[ $port -eq 1 || $porcess -eq 2 ]];then  #通过条件判断端口和进程执行的返回值.     echo "mysql is s ...

  2. 22_1mybaits入门

    1.什么是框架? 它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题. 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能.大大提高开发效率. 2.三层架构 表现层 ...

  3. 摘抄 <关于 作为>

    出路在哪里?出路在于思路! 其实,没有钱.没有经验.没有阅历.没有社会关系,这些都不可怕.没有钱,可以通过辛勤劳动去赚:没有经验,可以通过实践操作去总结:没有阅历,可以一步一步去积累:没有社会关系,可 ...

  4. HelloWorld的解析

    public class HelloWorld { public static void main(String[] args) { System.out.println("你好,世界!&q ...

  5. Noip2018退役记。

    下面是边考试边写的严肃版退役记\(:D\) Day0 其实我本来想取个这个名字:\(NOIP2018\)提高组复赛试题解析 但是这个博客自己求生欲望太强自己改名了. 先占个坑. noip考前毒奶 \( ...

  6. 树莓派GPIO引脚标识图

  7. Gym-100923A-Por Costel and Azerah(DP)

    链接: https://vjudge.net/problem/Gym-100923A 题意: Por Costel the Pig has received a royal invitation to ...

  8. 关于AES加密CryptoJS

    import * as CryptoJS from 'crypto-js'; let AuthTokenKey = "XXX"; //AES密钥let AuthTokenIv = ...

  9. Python:查看解释器的位置

    以前学Python时,有时出现这样的情况:明明记得装了scipy包,怎么打import scipy报错说我没这个包? 问题出在,你的电脑上安装了不止一个Python... 而每安装一个包,仅仅在这个P ...

  10. JS分组

    var SplitArray = function (N, Q) { var R = [], F; for (F = 0; F < Q.length;) R.push(Q.slice(F, F ...