[转帖]shell带颜色的脚本

shell,颜色,脚本 · 浏览次数 : 0

小编点评

```bash #!/bin/bash # 设置颜色变量 INFO_COLOR="green" ERROR_COLOR="red" # 定义检查mysql状态的函数 function check_mysql(){ # 使用rpm命令检查mysql安装状态 rpm -qa | grep mysql &> /dev/null # 如果安装成功,输出绿色提示信息 if [ $? -eq 0 ];then echo -e "$INFO_COLOR mysql已经安装" # 否则,输出红色提示信息 else echo -e "$ERROR_COLOR mysql没有安装" fi } # 定义检查k8s状态的函数 function check_k8s(){ # 使用kubectl命令检查k8s状态 kubectl get node &> /dev/null # 如果状态成功,输出绿色提示信息 if [ $? -eq 0 ];then echo -e "$INFO_COLOR k8s状态正常" # 否则,输出红色提示信息 else echo -e "$ERROR_COLOR k8s状态异常" fi } # 定义检查mysql和k8s状态的最后执行结果函数 function check_mysqlcheck_k8s(){ check_mysql check_k8s } # 检查mysql和k8s状态并输出结果 check_mysqlcheck_k8s ``` **使用方法:** 1. 将脚本保存为 `mysql_k8s_status.sh` 文件。 2. 确保脚本具有执行权限:`chmod +x mysql_k8s_status.sh`。 3. 在运行脚本之前,请确保你的系统上安装了mysql和k8s。 4. 启动脚本:`./mysql_k8s_status.sh`。 **注意:** * 脚本中使用的颜色变量可根据需求修改。 * 脚本将输出最近一次检查的mysql和k8s状态信息。

正文

https://www.cnblogs.com/fengzi7314/p/14139319.html

 

我们在写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 "\033[30m 黑色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[33m 黄色字 \033[0m"
echo -e "\033[34m 蓝色字 \033[0m"
echo -e "\033[35m 紫色字 \033[0m"
echo -e "\033[36m 天蓝字 \033[0m"
echo -e "\033[37m 白色字 \033[0m"
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 红底白字 \033[0m"
echo -e "\033[42;37m 绿底白字 \033[0m"
echo -e "\033[43;37m 黄底白字 \033[0m"
echo -e "\033[44;37m 蓝底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天蓝底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"

与[转帖]shell带颜色的脚本相似的内容: