http://blog.csdn.net/gsnumen/article/details/7268842
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.shcheck_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.shcheck_apache:8:DEBUG: apache [OK]check_mysql:15:DEBUG: mysql [OK]
当为: source ./mymod_log noall;
$ ./mymod_log_test.sh$
相关推荐
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 ...
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 ...
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. ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
为Docker和Amazon ECS代理启用调试模式(仅适用于Systemd初始化系统和Amazon Linux) 在与脚本相同的文件夹中创建tar zip文件 用法 以root用户身份运行此项目: # curl -O ...
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 ...
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 ...
第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 ...
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 ...
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 ...