关闭

shell脚本里面一个很经典的调试方法

627人阅读 评论(0) 收藏 举报
分类:

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参数也一样可以调试。

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

使用sh -x调试shell脚本

http://blog.chinaunix.net/uid-20564848-id-73502.html
  • beckdon
  • beckdon
  • 2014-06-25 16:47
  • 2979

几个shell脚本的面试题(一)

几个shell脚本的面试题
  • M_SIGNALs
  • M_SIGNALs
  • 2016-12-07 20:39
  • 2841

经典shell面试题整理

一、取出/etc/passwd文件中shell出现的次数 问题:下面是一个/etc/passwd文件的部分内容。题目要求取出shell并统计次数,shell是指后面的/bin/bash,/sbin/...
  • hanleijun
  • hanleijun
  • 2014-05-10 11:06
  • 1475

在 Shell 脚本中调用另一个 Shell 脚本的三种方式

先来说一下主要以下有几种方式: fork: path/to/foo.sh exec: exec path/to/foo.sh source: source path/to/foo.sh forkfor...
  • simple_the_best
  • simple_the_best
  • 2017-07-28 23:38
  • 4092

shell脚本里面一个很经典的调试方法(原创)

shell脚本里面一个很经典的调试方法 作者 余超 email:yuchao86@gmail.com shell脚本的测试大家经常使用的方法就是使用echo出数据来看是否符合程序运算的值。...
  • CYBEREXP2008
  • CYBEREXP2008
  • 2011-08-19 14:13
  • 1409

shell脚本里面一个很经典的调试方法(原创)

shell脚本里面一个很经典的调试方法 作者 余超 email:yuchao86@gmail.com shell脚本的测试大家经常使用的方法就是使用echo出数据来看是否符合程序运算的值。 ...
  • CYBEREXP2008
  • CYBEREXP2008
  • 2011-11-27 22:37
  • 1212

一个经典实用的iptables shell脚本

http://www.ha97.com/4096.html PS:这个iptables脚本不错,很实用,根据实际应用改一下就可以自己用。分享出来,供大家来参考。原作者佚名。源代码如下: ...
  • ztejiagn
  • ztejiagn
  • 2013-05-29 17:03
  • 524

一个经典实用的iptables shell脚本

#!/bin/sh # modprobe ipt_MASQUERADE modprobe ip_conntrack_ftp modprobe ip_nat_ftp iptables -F ...
  • czp11210
  • czp11210
  • 2013-04-11 09:11
  • 512

一个经典实用的iptables shell脚本

#!/bin/sh#modprobe ipt_MASQUERADEmodprobe ip_conntrack_ftpmodprobe ip_nat_ftpiptables -Fiptables -t ...
  • remotesupport
  • remotesupport
  • 2011-06-09 11:05
  • 456

一个经典的iptables的shell脚本

#!/bin/sh # modprobe ipt_MASQUERADE modprobe ip_conntrack_ftp modprobe ip_nat_ftp iptables -F ...
  • xuelun_yan
  • xuelun_yan
  • 2013-04-12 20:43
  • 254
    个人资料
    • 访问:767487次
    • 积分:9902
    • 等级:
    • 排名:第2055名
    • 原创:138篇
    • 转载:728篇
    • 译文:4篇
    • 评论:26条
    文章分类
    最新评论