`
scm002
  • 浏览: 309276 次
社区版块
存档分类
最新评论

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

 
阅读更多

http://blog.csdn.net/gsnumen/article/details/7268842

 

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

 

模块文件: mymod_log

 
# mymod_log 

while [[ ! -"$1" ]];
do
# echo "arg: $1";
    case "$1" in
        "noall")
            sed -'/^\([ \t]*\)mydebug/d'\
                -'/^\([ \t]*\)myrunlog/d'\
                -'/^\([ \t]*\)myerrlog/d'\
                -'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 [[ -"${sed_rule}" ]];then
    sed -'s/^\([ \t]*\)mydebug/\1echo "$FUNCNAME:$LINENO:DEBUG: "/g'\
        -'s/^\([ \t]*\)myrunlog/\1echo "$FUNCNAME:$LINENO:RUN: "/g'\
        -'s/^\([ \t]*\)myerrlog/\1echo 1>\&2 "$FUNCNAME:$LINENO:ERROR: "/g'\
        -'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 -'s/^\([ \t]*\)mydebug/\1echo "$FUNCNAME:$LINENO:DEBUG: "/g'\
        -'s/^\([ \t]*\)myrunlog/\1echo "$FUNCNAME:$LINENO:RUN: "/g'\
        -'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 
$
分享到:
评论

相关推荐

    Advanced Bash-Scripting Guide <>

    11-1. 作业标识符 30-1. Bash 选项 33-1. 转义序列中数值和彩色的对应 B-1. Special Shell Variables B-2. TEST Operators: Binary Comparison B-3. TEST Operators: Files B-4. Parameter Substitution and ...

    shell教程-30章,下了之后会让你大吃一惊,相当好

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    Linux高级bash编程

    33-1. 转义序列中数值和彩色的对应 B-1. Special Shell Variables B-2. TEST Operators: Binary Comparison B-3. TEST Operators: Files B-4. Parameter Substitution and Expansion B-5. String Operations B-6. ...

    shell 编程指南pdf

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    LINUX与UNIX SHELL编程指南(很全)

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    绝版经典《Linux与UNIX Shell编程指南》

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    linux与unix shell编程指南

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    linux shell 编程教程

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    Linux与unix shell编程指南1.rar

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    amazon-ecs-logs-collector:该脚本将用于收集常规os日志以及Docker和ecs-agent日志,它还支持在Amazon Linux中为docker和ecs-agent启用调试模式

    为Docker和Amazon ECS代理启用调试模式(仅适用于Systemd初始化系统和Amazon Linux) 在与脚本相同的文件夹中创建tar zip文件 用法 以root用户身份运行此项目: # curl -O ...

    Linux shell编程指南

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    shell编程和unix命令

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    LINUX与UNIX_Shell编程指南(下)

    第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 ...

    LINUX与UNIX SHELL编程指南

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

    LINUX与UNIX Shell编程指南

    16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 155 17.3 字符串测试 155 17.4 测试数值 156 17.5 ...

Global site tag (gtag.js) - Google Analytics