shell脚本里面一个很经典的调试方法(原创)
来源:互联网 发布:淘宝搜索关键词排名 编辑:程序博客网 时间:2024/05/17 09:20
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)
[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)
[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脚本的调试方法
- 一个经典的iptables的shell脚本
- 一个经典实用的iptables shell脚本
- 一个经典实用的iptables shell脚本
- 一个经典实用的iptables shell脚本
- 一个经典实用的iptables shell脚本
- 一个经典实用的iptables shell脚本
- 一个经典实用的 IPtables Shell 脚本
- 一个经典实用的iptables shell脚本
- 一个经典实用的iptables shell脚本
- 一个经典实用的iptables shell脚本
- 一个经典实用的iptables shell脚本
- shell脚本调试方法
- shell脚本调试方法
- 【学习笔记】C#学习笔记(操作数据库中的数据)
- Python中类成员和实例成员的区别
- 盘点谷歌史上15个最让求职者抓狂的面试题
- Android 资源
- "触宝CooTek杯” USTC Monthly Contest 2011-11-26 B&&E
- shell脚本里面一个很经典的调试方法(原创)
- 一个程序员的成长的六个阶段(转载)
- 三天终于过了,终于可以写文章了。呵呵
- 怎么把OCX打包成cab文件
- [V0.1.1]Backtrack problem in a 4 - dimensional container
- Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin
- 前进与后退
- 在Vovida的基础上实现自己的SIP协议栈(一)
- PHP源码分析-弱类型变量实现