分类: Python/Ruby
2012-04-10 20:12:29
1.1 shell跟踪选项
set命令:执行起来简单,而且能提供大量逻辑处理和脚本内部变量值的细节。
使用set命令其实就是使用shell选项来显示脚本运行时的冗余输出。
set命令的一个功能就是打开和关闭shell之中的各种选项。在这种情况下,设置的选项是-x或xtrace,这样在运行脚本时,除了正常的输出外,还会显示代码运行前每一行代码的扩展命令和变量。
如果脚本文件中加入命令"set -x"(xtrace),那么set命令之后执行的每一条命令以及加在命令行中的任何参数(包括变量和变量的值)都会显示出来。每一行之前都会加上加号(+),提示它是跟踪输出的标识。在子shell中执行的shell跟踪命令会加两个加号(++)。
例:
#!/bin/sh
set -x
echo -n "Can you write device drivers?"
read answer
answer=`echo $answer|tr [a-z] [A-Z]`
if [ $answer = Y ]
then
echo "Wow, you must be very skilled"
else
echo "Neither can I, I'm just an example shell script"
fi
输出结果:
shell的一些选项可以引发这个输出结果的稍许变动。如shell的-v选项可以打开冗余模式,和将脚本代码输出到标准错误文件stderr中。即改为“set -v”。
对于shell脚本,执行每一行代码和脚本的其他输出都会被发送到stderr中。
打开和关闭:
关闭和打开选项的句法是相反的。
如"-x"来打开xtrace选项,则"+x"来关闭xtrace选项。
这样就可以从某个点关闭选项,在只需要调试一小段代码时非常有用。