• SHELL输出颜色和闪烁控制


    Shell 颜色和闪烁控制

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

    格式

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

    定制颜色函数

    ## blue to echo 
    function blue(){
        echo -e "33[34m[ $1 ]33[0m"
    }
    
    
    ## green to echo 
    function green(){
        echo -e "33[32m[ $1 ]33[0m"
    }
    
    ## Error to warning with blink
    function bred(){
        echo -e "33[31m33[01m33[05m[ $1 ]33[0m"
    }
    
    ## Error to warning with blink
    function byellow(){
        echo -e "33[33m33[01m33[05m[ $1 ]33[0m"
    }
    
    
    ## Error
    function bred(){
        echo -e "33[31m33[01m[ $1 ]33[0m"
    }
    
    ## warning
    function byellow(){
        echo -e "33[33m33[01m[ $1 ]33[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 "33[35m[ $1 ]33[0m"
    }
    
    
    ## green to echo 
    function green(){
        echo -e "33[32m[ $1 ]33[0m"
    }
    
    ## Error to warning with blink
    function bred(){
        echo -e "33[31m33[01m33[05m[ $1 ]33[0m"
    }
    
    ## Error to warning with blink
    function byellow(){
        echo -e "33[33m33[01m33[05m[ $1 ]33[0m"
    }
    
    
    ## Error
    function red(){
        echo -e "33[31m33[01m[ $1 ]33[0m"
    }
    
    ## warning
    function yellow(){
        echo -e "33[33m33[01m[ $1 ]33[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 "33[31m33[01m [   old tomcat kill failed  ]33[0m"     红色
     
     

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

     


    作者:全栈运维
    链接:https://www.jianshu.com/p/ba1b8aded634
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    [九度][何海涛] 顺时针打印矩阵
    [何海涛] 求二元查找树的镜像
    [九度][何海涛] 二叉树中和为某一值的路径
    [面试] 水杯题实现
    [九度][何海涛] 最小的K个数
    [九度][何海涛] 字符串的排序
    如何扩展Orchard
    IoC容器Autofac(3) 理解Autofac原理,我实现的部分Autofac功能(附源码)
    使用PrivateObject帮助单元测试
    Nuget如何自动下载依赖DLL引用
  • 原文地址:https://www.cnblogs.com/weifeng1463/p/8479979.html
Copyright © 2020-2023  润新知