加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

shell脚本里面一个很经典的调试技巧

发布时间:2021-11-22 12:30:17 所属栏目:教程 来源:互联网
导读: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参数也一样可以调试。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读