程序是人写的,难免会出错。想知道你的程序正在做什么,有个好方法,就是把执行跟踪的功能打开。这会使得Shell显示每个被执行到的命令,并在前面加上"+ " ,一个加号后面跟着一个空格。
在脚本里,用 set -x 命令将执行跟踪的功能打开,然后再用 set +x 命令关闭它。这个功能对复杂的脚本比较有用,不过这里只用简单的程序来说明:
cat > trace1.sh#! /bin/shset -x #打开跟踪功能 echo 1st echo #做些事set +x #关闭跟踪功能 echo 2nd echo #再做些事 ^D #以end-of-file结尾
chmod +x trace1.sh./trace1.sh+ echo 1st echo #被跟踪的第一行 1st echo #命令的输出 + sex +x #被跟踪的下一行 2nd echo #下一个命令的输出
执行时,set -x 不会被跟踪,因为跟踪功能是在这条命令执行后才打开的。同理,sex +x 会被跟踪,因为跟踪功能是在这条命令执行后才关闭的。最后的echo命令不会被跟踪,因为此时跟踪功能已经关闭。