Mat*_*hid 17 bash environment-variables trace
Bash 有一个有时有用的功能,如果您打开“ -x
”选项(我相信符号名称是xtrace
),Bash 会在执行时输出脚本的每一行。
我知道有两种方法可以实现这种行为:
set -x
-x
选项传递给 Bash。有什么方法可以通过环境变量打开此选项吗?
(特别是,我自己没有调用 Bash,所以我无法向它传递任何选项,并且感兴趣的脚本位于压缩存档内,我真的不想重建它。如果我可以设置一个环境变量,它可能会被所有子进程继承......)
联机帮助页说了一些关于 的内容BASHOPTS
,但是当我尝试时,Bash 说这是只读的。(感谢您没有在联机帮助页中提及这一点。)
同样,SHELLOPTS
似乎也是只读的。
您可以选择与 一起使用哪个 FDBASH_XTRACEFD
。但我仍然需要首先打开跟踪。
Cha*_*ffy 18
用于env
忽略readonly
标志。
env SHELLOPTS=xtrace ./yourscript
Run Code Online (Sandbox Code Playgroud)
或者,如果您set -x
的父 shell 中有,则可以export SHELLOPTS
将其复制到环境中,从而复制到子 shell 中(感谢Joe Casadonte):
set -x # set xtrace flag
export SHELLOPTS # copy all options, including xtrace flag, to environment
./yourscript
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5760 次 |
最近记录: |