您的位置:首页 > 运维架构 > Shell

Linux下调试shell的几种方法

2015-03-11 13:35 225 查看
A、 使用 bashdb进行跟踪调试,可以设置断点等

B、 运行shell脚本加入-x参数

比如:bash –x test.sh

注意:这种模式下,程序会一次性执行完,但是会将执行的程序都打印;

C、 脚本中加入

Set –x:开启调试,会将后面的执行命令与参数都打印出来;set +x 会关闭调试,该语句之后的shell语句不会打印出来。

set –v:会打印读取到的代码段

可以单独使用,也可以联合使用;

另外一种写法: #!/bin/bash -xv

D、 脚本内部使用变量和函数的方式

实例脚本:

[code]#!/bin/bash
_DEBUG="on"
function DEBUG()
{
 [ "$_DEBUG" == "on" ] &&  $@
}

DEBUG echo 'Reading files'
for i in *
do
  grep 'zbkchuangjun' $i > /dev/null
  [ $? -eq 0 ] && echo "Found in $i file"
done
DEBUG set -x
a=2
b=3
c=$(( $a + $b ))
DEBUG set +x
echo "$a + $b = $c"


执行输出如下:

[code][root@lab205 ~]# sh script.sh 
Reading files
Found in script.sh file
+ a=2
+ b=3
+ c=5
+ DEBUG set +x
+ '[' on == on ']'
+ set +x
2 + 3 = 5


若设置_DEBUG=”off”,输出如下:

[code][root@lab205 ~]# sh script.sh 
Found in script.sh file
2 + 3 = 5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: