shell脚本里面一个很经典的调试技巧
发布时间:2021-12-14 21:20:17 所属栏目:PHP教程 来源:互联网
导读:shell脚本的测试大家经常使用的方法就是使用echo出数据来看是否符合程序运算的值。 如果脚本过大的,这使用定义的常量开关开控制echo的输出。 这里给大家介绍一个方法,在脚本里面#!/usr/bin/sh后设置一行set -xv就可以直接进入调试模式了。 而且一目了然。
shell脚本的测试大家经常使用的方法就是使用echo出数据来看是否符合程序运算的值。 如果脚本过大的,这使用定义的常量开关开控制echo的输出。 这里给大家介绍一个方法,在脚本里面#!/usr/bin/sh后设置一行set -xv就可以直接进入调试模式了。 而且一目了然。 请看如下列子: [www.linuxidc.com @linuxsource]$ls ada gcc-4.4.1 hotspot httpd-2.2.19 httpd-2.2.19.tar.gz leveldb-read-only MySQL-5.1.7-beta php-5.3.6 serial.tar.gz yu yuchao yu.pl yu.py yu.rb [www.linuxidc.com @linuxsource]$cat yu #!/bin/sh #yuchao1@staff.sina.com.cn #set -xv echo `ls ` if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; fi echo $0 echo $# a="zzz" if [ "$a" = "" ] then echo $a empty else echo $a no empty fi [www.linuxidc.com @linuxsource]$sh yu sina ada gcc-4.4.1 hotspot httpd-2.2.19 httpd-2.2.19.tar.gz leveldb-read-only mysql-5.1.7-beta php-5.3.6 serial.tar.gz yu yuchao yu.pl yu.py yu.rb yu 1 zzz no empty [www.linuxidc.com @linuxsource]$vim yu vim: /usr/lib/libxml2.so.2: no version information available (required by /usr/lib/libbonoboui-2.so.0) 加上:set -xv [www.linuxidc.com @linuxsource]$sh yu sina echo `ls ` + ls + echo ada gcc-4.4.1 hotspot httpd-2.2.19 httpd-2.2.19.tar.gz leveldb-read-only mysql-5.1.7-beta php-5.3.6 serial.tar.gz yu yuchao yu.pl yu.py yu.rb ada gcc-4.4.1 hotspot httpd-2.2.19 httpd-2.2.19.tar.gz leveldb-read-only mysql-5.1.7-beta php-5.3.6 serial.tar.gz yu yuchao yu.pl yu.py yu.rb if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; fi + [ 1 != 1 ] echo $0 + echo yu yu echo $# + echo 1 1 a="zzz" + a=zzz if [ "$a" = "" ] then echo $a empty else echo $a no empty fi + [ zzz = ] + echo zzz no empty zzz no empty [www.linuxidc.com @linuxsource]$sh -xv yu sina #!/bin/sh #yuchao1@staff.sina.com.cn set -xv + set -xv echo `ls ` + ls + echo ada gcc-4.4.1 hotspot httpd-2.2.19 httpd-2.2.19.tar.gz leveldb-read-only mysql-5.1.7-beta php-5.3.6 serial.tar.gz yu yuchao yu.pl yu.py yu.rb ada gcc-4.4.1 hotspot httpd-2.2.19 httpd-2.2.19.tar.gz leveldb-read-only mysql-5.1.7-beta php-5.3.6 serial.tar.gz yu yuchao yu.pl yu.py yu.rb if [ $# != 1 ] ; then echo "USAGE: $0 TABNAME" echo " e.g.: $0 CDR_CALL_20040701" exit 1; fi + [ 1 != 1 ] echo $0 + echo yu yu echo $# + echo 1 1 a="zzz" + a=zzz if [ "$a" = "" ] then echo $a empty else echo $a no empty fi + [ zzz = ] + echo zzz no empty zzz no empty 总结: 1,在程序脚本里面设置:set -xv 2.在命令行里面加上 -xv参数也一样可以调试。 ![]() (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |