使用多个脚本记录所有 bash 操作

使用多个脚本记录所有 bash 操作

使用下面的命令,我可以记录该脚本中发生的所有操作。

bash -x script.sh

遗憾的是,该脚本调用了另一个脚本,但该脚本没有-x激活该设置,即子脚本不会继承该设置。

那么,有没有办法set -x为所有后续脚本激活?

答案1

如果您没有编写子脚本并且无法控制其内容,那么可能无法在此处执行您想要的操作。您可以通过直接调用脚本来深入了解所调用的脚本,而bash -x <scriptname>不是依赖其可执行位。

如果您确实可以控制内容,请考虑使用环境变量来指示何时需要额外的跟踪并执行以下操作:

在您的环境中或.bashrc

export MYAPP_LOGGING="on"

然后在脚本顶部添加类似以下内容:

test "$MYAPP_LOGGING" && set -x

然后,MYAPP_LOGGING 的任何非空值都会打开跟踪。 unset MYAPP_LOGGING则会将其关闭。

还值得注意的是:您可以使用 关闭日志记录set +x,这样您就可以仅监控脚本的部分内容。

相关内容