我知道要调试脚本,可以使用命令:
set -x
第一行问题是,当脚本启动其他脚本时,它们不会继承此设置。所以我的问题是,是否有可能为shell和所有子shell或某个脚本及其启动的所有脚本全局设置此标志?
export SHELLOPTS
命令。这将使所有的Bash子shell都继承-x
选项(以及SHELLOPTS中的所有其他选项!)。export SHELLOPTS
bash -x script1.sh
这要看情况,你也可以使用 -x 来调用你的子shell。
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
bash -$-
调用每个脚本之外,我没有看到其他方法。好奇地等待答案。 - kojiro