(1) 使用选项–x,启用shell脚本的跟踪调试功能:
$ bash -x script.sh
运行带有-x标志的脚本可以打印出所执行的每一行命令以及当前状态。注意,你也可以使用sh -x script。
for i in {1..6};do
echo $i
echo "Script executed"
root@ubuntu:~/yqiu# bash -x debug.sh
+ for i in '{1..6}'
+ echo 1
1
+ for i in '{1..6}'
+ echo 2
2
+ for i in '{1..6}'
+ echo 3
3
+ for i in '{1..6}'
+ echo 4
4
+ for i in '{1..6}'
+ echo 5
5
+ for i in '{1..6}'
+ echo 6
6
+ echo 'Script executed'
Script executed
(2) 使用set -x和set +x对脚本进行部分调试。例如:
#!/bin/bash#文件名: debug.sh
for i in {1..6};do
set -x
echo $i
set +x
echo "Script executed"
在上面的脚本中,只会打印出echo $i的调试信息,因为使用了-x和+x对调试区域
进行了限制。
#!/bin/bash
function DEBUG()
{
[ "$_DEBUG" == "on" ] && $@ || :
}
for i in {1..10}
do
DEBUG echo $i
done
echo "script ended"
可以将调试功能置为"on"来运行上面的脚本:
$ _DEBUG=on ./script.sh