【发布时间】:2011-01-17 10:12:05
【问题描述】:
有没有办法在 KornShell (ksh) 脚本上全局设置调试模式 (set -x)?目前看来我已经做了以下事情:
a(){
set -x
#commands
}
b(){
set -x
#more commands
}
set-x
a
#commands
b
我真的希望只需要在一个地方调用set -x 命令。
注意:这一切都在 AIX 上的 KSH88 中。
例子:
#!/bin/ksh
set -x
a(){
echo "This is A!"
}
b(){
echo "This is B!"
}
a
echo "Outside"
b
dev2:/home/me-> ./testSetX
+ a
This is A!
+ echo Outside
Outside
+ b
This is B!
dev2:/home/me->
【问题讨论】:
-
这很奇怪。我还刚刚在我的一个 AIX 系统上的 ksh88(和 ksh93)中尝试了它,并且确实得到了所描述的行为。但是我的 HP-UX 系统上的 ksh88 可以像你想要的那样工作。我修改了答案以反映结果。
-
fyi,Solaris 10 上的 ksh88
/usr/bin/ksh也显示了所描述的行为(无全局影响set -x)。
标签: shell debugging scripting ksh script-debugging