zoukankan      html  css  js  c++  java
  • 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"
  • 相关阅读:
    第三周作业(二):分析代码
    第三周作业(一):安装VS以及创建单元测试
    作业:随机四则运算
    分数化简算法
    对应用软件:游戏-《上古卷轴5》的点评
    软件工程始发随想
    Siamese Network介绍
    YOLO v3算法介绍
    Residual Network和Inception Network网络架构介绍
    使用迁移学习(Transfer Learning)完成图像的多标签分类(Multi-Label)任务
  • 原文地址:https://www.cnblogs.com/fengzi7314/p/14139319.html
Copyright © 2011-2022 走看看