调试shell脚本


如下一个简单的脚本
#!/bin/sh 


number=1


if [ $number = "1" ]; then
        echo "Number equals 1"
else
        echo "Number does not equals 1"
fi


但是,我们经常有这样的经历,提示 “ [: =: unary operator expected” 错误
但又苦于不知道脚本语言如何调试,只能考经验来判断, 以修改脚本。
现在可以通过如下方法来调试了
具体如下:
在脚本最开始处中,添加 "-x"  即可,如下:
#!/bin/sh -x
然后在运行会提示


blwang@blwang-desktop:~$ ./test.sh 
+ number=
+ '[' = 1 ']'
./test.sh: line 5: [: =: unary operator expected
+ echo 'Number does not equals 1'
Number does not equals 1
看到这个就很明显的看到第5行存在的问题。然后修改后,再运行如下:
blwang@blwang-desktop:~$ ./test.sh 
+ number=1
+ '[' 1 = 1 ']'
+ echo 'Number equals 1'
Number equals 1


你也可以使用set命令来开启或关闭脚本的执行跟踪, 
如:set -x 开启脚本跟踪
set +x 关闭脚本跟踪
修改上面的程序:
#!/bin/sh 


number=1


set -x
if [ $number = "1" ]; then
        echo "Number equals 1"
else
        echo "Number does not equals 1"
fi
set +x


blwang@blwang-desktop:~$ ./test.sh 
+ '[' 1 = 1 ']'
+ echo 'Number equals 1'
Number equals 1
+ set +x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值