shell提供了两种方式来跟踪shell脚本中的命令,以帮助我们准确的定位程序中存在的问题。
第一种方式是用shell执行器的-x选项打开执行跟踪功能,该方式会将shell脚本中所有被执行的命令打印到终端。
sh -x trace.sh
另一种方式可以只打印部分被执行的shell命令,该方法在调试较为复杂的脚本时,显得尤为有用。
#!/bin/ksh
set -x #从该命令之后打开跟踪功能
echo "1st echo" #将被打印输出的shell命令
set +x #该命令被执行之后,所有的命令将不再打印输出; 即使用了-x选项来执行脚本也不打印
echo "2nd echo" #该shell命令将不再被打印输出。
打印输出的是经shell解释后的语句(即执行了变量替换和命令替换,过滤掉了引号等特殊符号),并在命令前显示一个加号和一个空格。