如何为其他脚本设置 -x

如何为其他脚本设置 -x

我仍在处理来自另一个问题由于我无法获取调试信息,因此尚未得到答复。

我有正在运行其他脚本的脚本,我需要查看 tty 是如何与终端断开连接的。

有没有办法全局“设置 -x”?我无法在问题脚本中设置它,因为它是动态生成的,不是我生成的,但我想看看它有什么问题。

答案1

使用 shell 选项集调用 Bash

根据调用 BashBash 手册的部分,

内置 set 命令使用的所有单字符选项(参见内置 set 命令)都可以在调用 shell 时用作选项

这意味着你可以运行带有选项设置的 Bash 脚本,xtrace方法是直接使用bash-x选项和脚本的文件名作为参数进行调用,例如,

bash -x /path/to/script

为所有 shell 脚本配置 shell 选项

当您说“全局”时,我假设您希望它xtrace为所有非交互式 Bash 调用设置选项。为此,将BASH_ENV环境变量设置为合适的文件名,然后创建该文件并将set -x其内容作为以下内容:

export BASH_ENV=~/.bash_env
echo set -x > ~/.bash_env

从手册页中:

当 bash 以非交互方式启动时,例如,要运行 shell 脚本,它会BASH_ENV在环境中查找变量,如果出现则扩展其值,并使用扩展的值作为要读取和执行的文件的名称。

相关内容