我仍在处理来自另一个问题由于我无法获取调试信息,因此尚未得到答复。
我有正在运行其他脚本的脚本,我需要查看 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
在环境中查找变量,如果出现则扩展其值,并使用扩展的值作为要读取和执行的文件的名称。