如何在给定系统上查询 bash 的编译时选项?
bash 的系统 rc 路径因系统而异。有时是/etc/bash.bashrc
,有时是/etc/bashrc
。如何以编程方式检测到这一点?
我知道我可以在 shell 中列出选项:
set -o
或者
shopt
如何在给定系统上查询 bash 的编译时选项?
bash 的系统 rc 路径因系统而异。有时是/etc/bash.bashrc
,有时是/etc/bashrc
。如何以编程方式检测到这一点?
我知道我可以在 shell 中列出选项:
set -o
或者
shopt
据我所知,Bash 源代码在编译后并没有区分
SYS_BASHRC
其他包含的 rc 文件。此外,SYS_BASHRC
可能是未定义的,并且生成的二进制文件根本不会使用系统 rc。但是,进程使用的所有文件都可以通过 找到
strace
。Bash 仅在交互式运行时才包含 rc 文件,因此:生成的文件
tmp.log
将包含所需的信息:不幸的是,它还会包含大量的行,例如用于库的行(以及重定向到 /dev/null)。我不确定如何在每种情况下选择正确的线路。但在实践中,我认为它很可能是第一个非图书馆
/etc/
: