如何为我自己以外的脚本“设置 -x”

Bry*_*son 4 linux bash

我仍在处理另一个问题中的错误,由于无法获得调试信息,该错误没有得到解答。

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

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

Ant*_*gan 6

使用 shell 选项集调用 Bash

根据Bash 手册的Invoking Bash部分,

当调用 shell 时,所有与 set 内置命令一起使用的单字符选项(请参阅 The Set Builtin)都可以用作选项

这意味着您可以运行带有一个bash脚本xtrace通过直接调用选项设置bash-x选项和脚本作为参数的文件名,例如,

bash -x /path/to/script
Run Code Online (Sandbox Code Playgroud)

为所有 shell 脚本配置 shell 选项

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

export BASH_ENV=~/.bash_env
echo set -x > ~/.bash_env
Run Code Online (Sandbox Code Playgroud)

从手册页:

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