`
banxi1988
  • 浏览: 152252 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

shell学习与使用,边学边用之三!(输出调试日志)

阅读更多
关于shell脚本的调试在我的博客“shell学习与使用,边学边用之二”中
后面关于"set -x"命令选项的使用就已经够了。
下面一些当作补充。
 
  一:最原始最常用的调试技术:
   使用echo和print命令。

  二:根据调试层次控制输出。使用echo指令的不足之处在于,当程序员不想显示这些输出的时候。就不得不注释掉或者删除这些指令。如果下次要再调试又要再次添加。麻烦又容易出错。
借鉴C语言中常用的控制调试输出技巧,即使用
#define DEBUG 1

#ifdef DEBUG
printf("messages ……");
#endif

如果不需要输出调试信息时将#define DEBUG 1注释掉即可。
要输出调试信息时再将注释删除即可。

  在shell脚本中也可以使用一些如debug标志然后输出的方式来做。然后调用一些专门输出调试信息的函数测试如下:
banxi1988@banxi:~/work/shell$ bash -n set_x_disable.sh 
banxi1988@banxi:~/work/shell$ ./set_x_disable.sh 
Can you write device drivers(y/n)?y
DEBUG:call log_debug
Wow,you must be very skilled!
banxi1988@banxi:~/work/shell$ cat set_x_disable.sh 
#!/bin/bash
#set -x
#set -v
DEBUG=1
log_debug() {
if [ $DEBUG -gt 0 ];then
	if [ $# -lt 1 ]
	then
		echo "no message";
	else
		echo "DEBUG:$1";
	fi
fi
}
echo -n "Can you write device drivers(y/n)?"
read answer
answer=`echo $answer | tr [a-z] [A-Z]`
if [ $answer = Y ] 
then
	log_debug "call log_debug"
	echo "Wow,you must be very skilled!"
else
	echo "Neither can I,I'm just an example shell script"
fi
banxi1988@banxi:~/work/shell$ 



根据上面还可以写出其它级别的调试日志输出函数。
根据java中的log4j来说还可以有log_info(),log_warn(),log_error(),log_fatal()等
日志输出函数。

=================未完待续……==============
分享到:
评论

相关推荐

    shell脚本实现分日志级别输出的方法

    ①设定日志级别,实现可以输出不同级别的日志信息,方便调试 ②日志格式类似为:[日志级别] 时间 funcname:函数名 [lineno:行号] 日志信息 ③不同级别,设定不同颜色 ④让其变为函数库文件,重用代码 下面看看我...

    shell 编程指南pdf

    第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准...

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

    第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准...

    Android 调试桥(adb)使用大全

    Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 可以通过下列几种方法加入adb: • 在设备上运行shell命令 • 通过端口转发来管理模拟器或设备 • 从模拟器或设备上拷贝来或拷贝...

    Shell脚本专家指南

    《Shell脚本专家指南》旨在为Linux、Unix以及OSx系统管理员提供短小精悍且功能强大的shell实现解决方案,教会读者如何使用现有调试器调试shell脚本。全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本...

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

    本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod...

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

    第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准...

    LINUX与UNIX SHELL编程指南

    本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod...

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

    第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准...

    linux与unix shell编程指南

    本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod...

    LINUX与UNIX Shell编程指南

    第5章 shell输入与输出 34 5.1 echo 34 5.2 read 35 5.3 cat 37 5.4 管道 38 5.5 tee 39 5.6 标准输入、输出和错误 40 5.6.1 标准输入 40 5.6.2 标准输出 40 5.6.3 标准错误 40 5.7 文件重定向 40 5.7.1 重定向标准...

Global site tag (gtag.js) - Google Analytics