shell脚本调试 -- 运行日志1

shell脚本调试 -- 运行日志1

 

模块文件: mymod_log

 
# mymod_log 

while [[ ! -z "$1" ]];
do
# echo "arg: $1";
    case "$1" in
        "noall")
            sed -e '/^\([ \t]*\)mydebug/d'\
                -e '/^\([ \t]*\)myrunlog/d'\
                -e '/^\([ \t]*\)myerrlog/d'\
                -e 's/^\([ \t]*\)\<source\>\(.*\)\<mymod_log\>\(.*\)$/#\1source\2mymod_log\3/g'\
                "$0" |/bin/bash
                exit $?
            ;;
        "nodebug")
            #mydebug delete
            sed_rule="${sed_rule} -e '/^\([ \t]*\)mydebug/d'"
            ;;
        "norunlog")
            #myrunlog delete
            sed_rule="${sed_rule} -e '/^\([ \t]*\)myrunlog/d'"
            ;;
        "noerrlog")
            #myerrlog delete
            sed_rule="${sed_rule} -e '/^\([ \t]*\)myerrlog/d'"
            ;;
        *)
        ;;
    esac
    shift;
done

if [[ -z "${sed_rule}" ]];then
    sed -e 's/^\([ \t]*\)mydebug/\1echo "$FUNCNAME:$LINENO:DEBUG: "/g'\
        -e 's/^\([ \t]*\)myrunlog/\1echo "$FUNCNAME:$LINENO:RUN: "/g'\
        -e 's/^\([ \t]*\)myerrlog/\1echo 1>\&2 "$FUNCNAME:$LINENO:ERROR: "/g'\
        -e 's/^\(.*\)\<source\>\(.*\)\<mymod_log\>\(.*\)$/#\1source\2mymod_log\3/g'\
        "$0" |/bin/bash
else
# echo "${sed_rule}";
eval "sed ${sed_rule} $0" |\
sed 's/^\([ \t]*\)\<source\>\(.*\)\<mymod_log\>\(.*\)$/#\1source\2mymod_log\3/g'|\
    sed -e 's/^\([ \t]*\)mydebug/\1echo "$FUNCNAME:$LINENO:DEBUG: "/g'\
        -e 's/^\([ \t]*\)myrunlog/\1echo "$FUNCNAME:$LINENO:RUN: "/g'\
        -e 's/^\([ \t]*\)myerrlog/\1echo 1>\&2 "$FUNCNAME:$LINENO:ERROR: "/g'\
        | /bin/bash

fi

exit $?
 
 

测试文件: mymod_log_test.sh

 
#!/bin/bash 
# mymod_log_test.sh

source ./mymod_log norunlog;

function check_apache()
{
    mydebug "apache [OK]";
    myrunlog "apache [OK]";
    myerrlog "apache [FAIL]";
    :;
}


function check_mysql()
{
    mydebug "mysql [OK]";
    myrunlog "mysql [OK]";
    myerrlog "mysql [FAIL]";
    :;
}

function check_all()
{
    check_apache;
    check_mysql;
}

check_all;
 
 

测试结果:

当为:  source ./mymod_log norunlog; 时
$ ./mymod_log_test.sh 
check_apache:8:DEBUG: apache [OK]
check_apache:9:ERROR: apache [FAIL]
check_mysql:16:DEBUG: mysql [OK]
check_mysql:17:ERROR: mysql [FAIL]
当为 source ./mymod_log norunlog noerrlog;
$ ./mymod_log_test.sh 
check_apache:8:DEBUG: apache [OK]
check_mysql:15:DEBUG: mysql [OK]
当为: source ./mymod_log noall;
$ ./mymod_log_test.sh 
$
------------- end -------------
From: GS
-------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值