我知道要调试脚本我可以发出命令
set -x
在第一行。问题是当脚本启动其他一些脚本时,它们不会继承此设置。所以我的问题是是否有可能为shell和所有子shell或某些脚本和它启动的所有脚本全局设置这个标志?
在 Bash 中,您可以使用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