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

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 
$
分享到:
评论

相关推荐

    Shell脚本调试技术

    ### Shell脚本调试技术 在IT领域中,Shell脚本是一种强大的工具,广泛应用于Unix/Linux系统管理、自动化任务处理等领域。然而,随着脚本复杂度的增加,如何有效地调试Shell脚本成为了一项挑战。本文将详细介绍几种...

    PyPI 官网下载 | cloudshell-app-helper-1.0.5.tar.gz

    4. **错误处理和日志记录**:为了提高代码的健壮性和可维护性,此库可能包含异常处理机制和日志记录功能,方便开发者调试和监控应用的运行状态。 5. **配置管理**:可能提供配置文件读取和写入的功能,帮助用户保存...

    Linux Shell调试技术

    #### 二、Shell脚本调试技术介绍 为了更好地解决逻辑错误,Shell提供了多种调试工具和技术,其中包括`trap`、`tee`、调试钩子和Shell选项等。 ##### 1. `trap`命令 `trap`是Linux中的一个内置命令,主要用于捕获...

    linux下批量执行oracle脚本的shell脚本

    `说明.txt` 文件可能是对整个过程的详细说明,包括如何运行shell脚本,脚本的工作原理,以及可能遇到的问题和解决方案。阅读这份说明有助于理解脚本的使用方法和潜在问题。 执行Oracle SQL脚本的shell脚本通常包含...

    shell脚本.pdf

    1. **基础语法**:Shell脚本的基础包括变量定义、条件语句(if-else)、循环结构(for, while)、函数定义等。变量在Shell中用来存储数据,可以通过"$"符号来引用。条件语句和循环结构用于控制程序的流程,根据不同...

    shell脚本学习指南

    3. **执行脚本**:要运行Shell脚本,需赋予脚本执行权限(`chmod +x scriptname.sh`)然后通过`./scriptname.sh`执行。 二、Shell脚本语法 1. **变量**:Shell中的变量无需预先声明,直接赋值即可。如`NAME="John...

    shell 脚本抓取android logcat和kernel log,以及删除旧的log

    在Android系统中,logcat和kernel log是两个重要的日志系统,它们记录了系统的运行状态、错误信息和其他调试数据。shell脚本则是Linux/Android环境中进行自动化任务的强大工具。本篇将详细介绍如何利用shell脚本来...

    Linux运维-运维工具箱-18个 Shell脚本经典案例-视频1-2.zip

    这个压缩包"Linux运维-运维工具箱-18个 Shell脚本经典案例-视频1-2.zip"提供了18个实用的Shell脚本示例,适合初学者和有经验的运维人员学习参考。通过观看视频1-2,我们可以深入理解这些脚本的设计思路和应用场景。 ...

    shell脚本学习指南pdf

    **Shell脚本学习指南** Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本...

    linux shell脚本

    Linux Shell脚本是一种强大的自动化工具,它允许用户通过命令行接口执行一系列操作,极大地提高了工作效率。在Linux系统中,Shell脚本是用Bash(Bourne-Again SHell)或其他兼容的Shell编写的,例如KornShell (ksh) ...

    Shell脚本学习指https://pan.baidu.com/s/1sPfOlmfcq1PmzOkD0ZnsyA

    8. **脚本调试**:了解如何设置断点、跟踪和调试Shell脚本。 掌握这些知识点后,你将能够编写出功能强大、灵活多变的Shell脚本,无论是在日常工作中还是在项目开发中,都能发挥巨大作用。不过,记得实践是提升技能...

    linux下101个shell脚本

    在Linux操作系统中,Shell脚本是一种强大的工具,用于自动化日常任务、管理系统以及执行一系列命令。"Linux下101个shell脚本"是一份宝贵的资源,涵盖了从基础到高级的各种shell脚本示例,对于想要深入学习Linux ...

    Shell脚本学习指南.pdf

    Shell脚本本质上就是一系列的Shell命令,它们被写入到一个文本文件中,然后通过执行这个文件来运行这些命令。在“Shell脚本学习指南”中,你可能会学到以下内容: 1. **基础语法**:包括变量定义、赋值、环境变量、...

    发现服务不打日志进行重启shell脚本.txt

    ### 发现服务超过一个小时不打日志进行重启Shell脚本详解 #### 背景介绍 在运维领域,为了确保应用程序或服务的稳定运行,通常会编写一系列的监控脚本来实时监测服务的状态。当发现服务异常时(比如长时间未产生...

    编写Shell脚本

    在IT行业中,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,尤其对于系统管理员和开发者而言,熟练掌握Shell脚本编写技巧至关重要。标题“编写Shell脚本”表明我们要深入探讨这一主题,而描述则强调了Shell...

Global site tag (gtag.js) - Google Analytics