调试bash / ksh脚本和下标

时间:2013-10-14 11:58:09

标签: linux bash shell debugging ksh

我知道要调试脚本我可以发出命令

set -x 

在第一行。问题是当脚本启动其他一些脚本时,它们不会继承此设置。所以我的问题是,是否有可能为shell和所有子shell或某些脚本及其启动的所有脚本全局设置此标志?

3 个答案:

答案 0 :(得分:0)

这取决于你用-x调用你的子shell,

答案 1 :(得分:0)

set -x放在Shell脚本

$ cat shell1.sh
echo "Shell1"

$ cat shell2.sh
#!/bin/bash
set -x
./shell1.sh
echo "shell2.sh"

$ ./shell2.sh
+ ./shell1.sh
Shell1
+ echo shell2.sh
shell2.sh

答案 2 :(得分:0)

在Bash中,您可以使用export SHELLOPTS。它将使所有Bash子Shell继承-x选项(以及其他选项!)。

示例:

export SHELLOPTS
bash -x script1.sh

请参见bash recursive xtrace