我们在写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"