shell脚本里面一个很经典的调试方法(原创)
2011-08-19 14:13
661 查看
shell脚本里面一个很经典的调试方法
作者 余超 email:yuchao86@gmail.com
shell脚本的测试大家经常使用的方法就是使用echo出数据来看是否符合程序运算的值。
如果脚本过大的,这使用定义的常量开关开控制echo的输出。
这里给大家介绍一个方法,
在脚本里面#!/usr/bin/sh后设置一行set -xv就可以直接进入调试模式了。
而且一目了然。
请看如下列子:
[yuchao@yuchao-Latitude-E5410 source]$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
[yuchao@yuchao-Latitude-E5410 source]$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
[yuchao@yuchao-Latitude-E5410 source]$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
[yuchao@yuchao-Latitude-E5410 source]$vim yu
vim: /usr/lib/libxml2.so.2: no version information available (required by /usr/lib/libbonoboui-2.so.0)
加上:set -xv
[yuchao@yuchao-Latitude-E5410 source]$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
[yuchao@yuchao-Latitude-E5410 source]$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参数也一样可以调试。
作者 余超 email:yuchao86@gmail.com
shell脚本的测试大家经常使用的方法就是使用echo出数据来看是否符合程序运算的值。
如果脚本过大的,这使用定义的常量开关开控制echo的输出。
这里给大家介绍一个方法,
在脚本里面#!/usr/bin/sh后设置一行set -xv就可以直接进入调试模式了。
而且一目了然。
请看如下列子:
[yuchao@yuchao-Latitude-E5410 source]$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
[yuchao@yuchao-Latitude-E5410 source]$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
[yuchao@yuchao-Latitude-E5410 source]$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
[yuchao@yuchao-Latitude-E5410 source]$vim yu
vim: /usr/lib/libxml2.so.2: no version information available (required by /usr/lib/libbonoboui-2.so.0)
加上:set -xv
[yuchao@yuchao-Latitude-E5410 source]$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
[yuchao@yuchao-Latitude-E5410 source]$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参数也一样可以调试。
相关文章推荐
- shell脚本里面一个很经典的调试方法(原创)
- shell脚本里面一个很经典的调试方法
- Shell脚本中调用另外一个脚本的方法
- Shell脚本调试方法
- shell脚本调试方法
- shell脚本判断一个目录是否为空的方法
- Shell - Shell脚本调试方法
- Shell—启用Shell脚本调试模式的方法
- shell脚本里面利用for循环给动态变量赋值的方法
- ie的一个调试方法,通过动态写入样式或者脚本
- Shell脚本调试方法
- 一个简单的加密解密方法(java、shell脚本)
- Shell脚本中调用另外一个脚本的方法
- Shell脚本中调用另外一个脚本的方法
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
- Shell脚本中调用另外一个脚本的方法
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
- Shell脚本中调用另外一个脚本的方法
- Android以root起一个process[shell脚本的方法]
- shell脚本调试方法