#!/bin/bash
#set -x 打开跟踪,set +x 关闭跟踪。对于复杂的脚本来说这个命令很有用,可以知道命令到哪里出了 #问题
set -x #打开跟跟踪
echo "hello ,welcome" #第一条命令
set +x #关闭跟踪
echo "test set -x end" 第二条命令
#下面是执行结果
[root@sql tmp]# ./setx #执行这个脚本,脚本名为setx
+ echo 'hello ,welcome' #执行第一条命令
hello ,welcome #执行结果输出
+ set +x #关闭跟踪
test set -x end #第二条命令结果输出 ,这里并没出现被跟踪的命令,因为跟踪命
[root@sql tmp]# 令关闭了。
除了上面的在脚本中加入命令的方法,还可以在执行时加上参数来跟踪脚本执行情况,
如:
[root@lyang tmp]# sh -n while #在执行时加上 -n 参数,检查脚本语法有没有问题,没有面不显示
[root@lyang tmp]# sh -v whil #在执行时加上 -v参数,在执行脚本前在屏幕上显示脚本内容
#!/bin/bash
#用while打印1到10
a=1
while (( $a <= 10 ))
do
echo $a
let a=a+1
done
1
2
3
4
5
6
7
8
9
10
echo "test while end "
test while end
[root@lyang tmp]# sh -x while #在执行时加上 -x 参数时会跟踪每次执行
+ a=1
+ (( 1 <= 10 ))
+ echo 1
1
+ let a=a+1
+ (( 2 <= 10 ))
+ echo 2
2
+ let a=a+1
+ (( 3 <= 10 ))
+ echo 3
3
+ let a=a+1
+ (( 4 <= 10 ))
+ echo 4
4
+ let a=a+1
+ (( 5 <= 10 ))
+ echo 5
5
+ let a=a+1
+ (( 6 <= 10 ))
+ echo 6
6
+ let a=a+1
+ (( 7 <= 10 ))
+ echo 7
7
+ let a=a+1
+ (( 8 <= 10 ))
+ echo 8
8
+ let a=a+1
+ (( 9 <= 10 ))
+ echo 9
9
+ let a=a+1
+ (( 10 <= 10 ))
+ echo 10
10
+ let a=a+1
+ (( 11 <= 10 ))
+ echo 'test while end '
test while end