• shell带颜色的脚本


    我们在写shell脚本的时候为了使输出出来的信息更加醒目一点,可以给不同状态的字体显示不同的颜色,如下:

    我在这里最先定义了2个函数,log.info和log.err,一个输出正常信息为绿色,一个输出异常信息为红色,随后又定义了2个函数,分别检查mysql和k8s状态,如果检查ok我们就调用info函数,如果检查失败就调用err函数,最后输出结果可以看下图,这样显得更加醒目,更加友好一些。

    #!/bin/bash
    
    function log.info()
    { 
      echo "==================================="
      echo -e "e[1;32m $1 e[0m"
      echo "==================================="
    }
    
    function log.err()
    {
      echo "==================================="
      echo -e "e[1;31m $1 e[0m"
      echo "==================================="
    }
    function check_mysql()
    {
        rpm -qa | grep mysql &> /dev/null
        if [ $? -eq 0 ];then
            log.info "mysql已经安装"
        else
            log.err "mysql没有安装"
        fi
    }
    function check_k8s()
    {
        kubectl get node &> /dev/null
        if [ $? -eq 0 ];then
            log.info "k8s状态正常"
        else
            log.err "k8s状态异常"
        fi
    }
    check_mysql
    check_k8s

    如果想让脚本在人性化一点,把时间也打印出来,方便日后查看日志的报错时间,可以按照如下脚本:

    #!/bin/bash
    function print_log()
    {
        log_level=$1
        log_msg=$2
        current_time=`echo $(date +%F%n%T)`
        echo $log_level | grep -i "info" &> /dev/null && echo -e "$current_time e[1;32m [$log_level] e[0m $log_msg"
        echo $log_level | grep -i "error" &> /dev/null && echo -e "$current_time e[1;31m [$log_level] e[0m $log_msg"
        
    }
    
    
    function check_mysql()
    {
        rpm -qa | grep mysql &> /dev/null
        if [ $? -eq 0 ];then
            print_log INFO "mysql已经安装"
        else
            print_log ERROR "mysql没有安装"
        fi
    }
    function check_k8s()
    {
        kubectl get node &> /dev/null
        if [ $? -eq 0 ];then
            print_log INFO "k8s状态正常"
        else
            print_log ERROR "k8s状态异常"
        fi
    }
    check_mysql
    check_k8s

    最后的执行结果为:

    这里只是给大家提供一种写脚本的思路,这个脚本属于热插拔的,真正项目当中可以那过来稍加修改就可以使用

     此外颜色还可以有多种选择,如下:

    echo -e "33[30m 黑色字 33[0m"
    echo -e "33[31m 红色字 33[0m"
    echo -e "33[32m 绿色字 33[0m"
    echo -e "33[33m 黄色字 33[0m"
    echo -e "33[34m 蓝色字 33[0m"
    echo -e "33[35m 紫色字 33[0m"
    echo -e "33[36m 天蓝字 33[0m"
    echo -e "33[37m 白色字 33[0m"
    echo -e "33[40;37m 黑底白字 33[0m"
    echo -e "33[41;37m 红底白字 33[0m"
    echo -e "33[42;37m 绿底白字 33[0m"
    echo -e "33[43;37m 黄底白字 33[0m"
    echo -e "33[44;37m 蓝底白字 33[0m"
    echo -e "33[45;37m 紫底白字 33[0m"
    echo -e "33[46;37m 天蓝底白字 33[0m"
    echo -e "33[47;30m 白底黑字 33[0m"
  • 相关阅读:
    iis aspx常见错误 没有对“C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files”的写访问权限。
    Windows 下 Apache HTTP Server 安装、配置以及与 Tomcat 的整合(附图)
    Xstudio+Bugzilla
    测试管理工具列表大全
    bitmap详细介绍
    Android学习绘制图形
    PorterDuff.Mode
    盒模型及文本溢出
    css属性继承
    CSS层叠样式
  • 原文地址:https://www.cnblogs.com/fengzi7314/p/14139319.html
Copyright © 2020-2023  润新知