在我的.bash_profile中,为我的交互式和非交互式login都执行
BASH_ENV=$HOME/.myinteractivestuff export BASH_ENV
在Linux上为bash做这个工作正常,但是在Solaris上不是来源:
bash --version GNU bash, version 3.00.16(1)-release (sparc-sun-solaris2.10)
奇怪的是,如果我在我的loginshell中调用屏幕,BASH_ENV然后被读取。 在Solaris上何时遵守$ BASH_ENV是否有任何限制? 在我的情况下,我用ssh使用puttylogin,但也试图unix ssh和telnet,看到相同的。
请注意,我知道我的BASH_ENVvariables赋值正在执行,因为我可以在login后回显这个variables而没有任何问题(即:排除了我的.bash_profile也没有被读取的明显可能性)。
这并不完全清楚你的期望是什么。 bash手册说$ BASH_ENV的值仅在执行shell脚本时使用,但是您的示例build议您将交互式命令放入其中BASH_ENV=$HOME/.myinteractivestuff 。
BASH_ENV
If this parameter is set when bash is executing a shell script, its value is interpreted as a filename containing commands to initialize the shell, as in ~/.bashrc...
你说BASH_ENVvariables是在Solaris下设置的,这意味着你发布的两行工作正常。 他们所做的唯一的事情就是设置一个导出的variables,并确认它已经完成。
如果设置,启动bash shell脚本时运行BASH_ENV。 这意味着如果在Linux环境下运行〜/ .myinteractivestuff,可以在BASH_ENV设置后的其他地方运行某个脚本,或者在启动脚本的某个地方明确地源代码。
顺便说一句,你可以写更简单:
export BASH_ENV=~/.myinteractivestuff