shell学习与使用,边学边用之三!(输出调试日志)
关于shell脚本的调试在我的博客“shell学习与使用,边学边用之二”中
后面关于"set -x"命令选项的使用就已经够了。
下面一些当作补充。
一:最原始最常用的调试技术:
使用echo和print命令。
二:根据调试层次控制输出。使用echo指令的不足之处在于,当程序员不想显示这些输出的时候。就不得不注释掉或者删除这些指令。如果下次要再调试又要再次添加。麻烦又容易出错。
借鉴C语言中常用的控制调试输出技巧,即使用
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)?yDEBUG:call log_debugWow,you must be very skilled!banxi1988@banxi:~/work/shell$ cat set_x_disable.sh #!/bin/bash#set -x#set -vDEBUG=1log_debug() {if [ $DEBUG -gt 0 ];thenif [ $# -lt 1 ]thenecho "no message";elseecho "DEBUG:$1";fifi}echo -n "Can you write device drivers(y/n)?"read answeranswer=`echo $answer | tr [a-z] [A-Z]`if [ $answer = Y ] thenlog_debug "call log_debug"echo "Wow,you must be very skilled!"elseecho "Neither can I,I'm just an example shell script"fibanxi1988@banxi:~/work/shell$