shell 输出带颜色文本函数

   一些监控脚本,或者重启服务的脚本。会用红色或绿色来输出 成功 失败。

   下面就用一个函数来封装该功能。

   函数功能:接收字符串参数,将接收到的参数[]中的OK变为红色,FAILD变为绿色。如下图:

   成功:

133751680.png

   失败:

133943257.png


   闲话少说:直接上代码


#!/bin/bash
action(){
        MSG=$1
        COLOER=`echo $1|sed 's#^.*\[\(.*\)\].*#\1#g'`
        BASE=`echo $1|sed 's#\(^.*\)\[.*]#\1#g'`
        if [ "OK" != "$COLOER" ];then
                echo -e "${BASE} [\e[0;31;1m  $COLOER  \e[0m]"
        else
                echo -e "${BASE} [\e[1;32m $COLOER \e[0m]"
        fi
}
STAT=`curl -I -s 1www.baidu.com|grep HTTP|awk '{print $2}'`
[ -z $STAT ]&&STAT=500
if [ "200" -eq "$STAT" ];then
        action "THE WEB STATUS IS  ............ [OK]"
        exit 0
else
        action "THE WEB STATUS IS  ............ [FAILD]"
        exit 1
fi


可以优化上面的action函数,将颜色信息编码,作为参数传入。更方便的调用。

比如 action "blue" "THE WEB STATUS IS [OK]"。目前尚未该需求,就不写了。


好吧,闲着也是闲着,就优化了一下action函数。

只编码了绿色和红色两种颜色。 action "green" "THE WEB STATUS IS [OK]",这种方式调用。

上代码:

action(){
        REG_RED="\e[0;31;1m"
        REG_GREEN="\e[1;32m"
        RES="\e[0m"
        COLOER=""
        case "$1" in
                red|RED)
                COLOER=$REG_RED
                ;;
                green|GREEN)
                COLOER=$REG_GREEN
                ;;
        esac
        COLOERTEXT=`echo $2|sed 's#^.*\[\(.*\)\].*#\1#g'`
        BASE=`echo $2|sed 's#\(^.*\)\[.*]#\1#g'`
        if [ "OK" != "$COLOERTEXT" ];then
                 echo -e "${BASE} [${COLOER} $COLOERTEXT ${RES}]"
        else
                 echo -e "${BASE} [${COLOER} $COLOERTEXT ${RES}]"
        fi
}

下面是颜色的编码信息列表!

1,输出红色字体 abc,背景色不变,以下三个效果一样
echo -e '\033[0;31;1m abc \033[0m'
echo -e "\e[1;31m    
abc \e[0m"
echo -e "\e[0;31;1m   abc \e[0m"

2,输出黄色字体 abc,红色背景色,以下三个效果一样
echo -e '\033[41;33;1m abc \033[0m'
echo -e "\e[41;33m    
abc \e[0m"
echo -e "\e[41;33;1m   abc \e[0m"

30 黑 31 红, 32 绿, 33 黄, 34 蓝, 35 紫, 36 青绿, 37 白(灰)
echo -e "\e[1;30m skyapp exist \e[0m" //黑色
echo -e "\e[1;31m skyapp exist \e[0m" //红色
echo -e "\e[1;32m skyapp exist \e[0m" //绿色
echo -e "\e[1;33m skyapp exist \e[0m" //黄色
echo -e "\e[1;34m skyapp exist \e[0m" //蓝色
echo -e "\e[1;35m skyapp exist \e[0m" //紫色
echo -e "\e[1;36m skyapp exist \e[0m" //青绿
echo -e "\e[1;37m skyapp exist \e[0m" //白(灰)

你可能感兴趣的:(函数,shell,颜色,输出)