shell 输出带颜色文本函数
时间:2014-04-29 02:25 来源:linux.it.net.cn 作者:IT网
一些监控脚本,或者重启服务的脚本。会用红色或绿色来输出 成功 失败。
下面就用一个函数来封装该功能。
函数功能:接收字符串参数,将接收到的参数[]中的OK变为红色,FAILD变为绿色。如下图:
成功:
失败:
闲话少说:直接上代码
#!/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" //白(灰)
(责任编辑:IT)
一些监控脚本,或者重启服务的脚本。会用红色或绿色来输出 成功 失败。 下面就用一个函数来封装该功能。 函数功能:接收字符串参数,将接收到的参数[]中的OK变为红色,FAILD变为绿色。如下图: 成功: 失败: 闲话少说:直接上代码 #!/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" //白(灰) (责任编辑:IT) |