6

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

set -x 

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

4

3 回答 3

4

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

例子:

export SHELLOPTS
bash -x script1.sh

请参阅bash 递归 xtrace

于 2019-05-14T19:03:28.197 回答
0

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

于 2013-10-14T12:02:41.187 回答
-1

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
于 2013-10-14T12:22:04.717 回答