我正在学习 bash 的启动文件,我找到了以下链接:
然后在链接中图表的最后一个分支中,我发现如果 bash 是非登录非交互的,那么 env 变量应该来自环境变量 BASH_ENV ,我制作了一个测试文件并编写了 BASH_ENV="/home/myusername/ .bare.sh"
.bare.sh 的内容是:
var="the bare environment branch should be reached"
并启动了一个打印 var 的脚本:
echo $var
但启动脚本后没有输出
我希望它打印“应该到达裸环境分支”
这里可能是什么问题?
如果非交互式、非登录
bash
shellBASH_ENV
在其环境中找到,它将获取该文件。如果BASH_ENV
未导出,则不会在该 shell 的环境中找到它。这意味着您要么必须
export BASH_ENV
在调用 shell 中,要么使用启动脚本时。
手册中的相关段落
bash
:因此,简而言之,仅在交互式 shell 中设置是不够的
BASH_ENV
,它还必须在 shell 脚本的环境中可见。