![从 ~/.bashrc 获取 ~/.profile 有什么危险?](https://linux22.com/image/1061738/%E4%BB%8E%20~%2F.bashrc%20%E8%8E%B7%E5%8F%96%20~%2F.profile%20%E6%9C%89%E4%BB%80%E4%B9%88%E5%8D%B1%E9%99%A9%EF%BC%9F.png)
我发现很多人反其道而行之。有什么理由说明从 采购 不是一个好主意~/.profile
吗~/.bashrc
?
# .bashrc
if [ -f ~/.profile ]; then
source ~/.profile
fi
我进行了很多搜索,通常人们会做以下事情:
# .bash_profile
if [ -f ~/.profile ]; then
source ~/.profile
fi
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
~/.profile
我需要为非登录 shell 的交互式 shell 定义一些环境变量(因此我使用~/.bashrc
)。这会给我带来危险吗?
答案1
如果不知道你的.bashrc
和你的.profile
,我们就没法说。例如,.profile
Ubuntu 源上的默认设置.bashrc
。现在,如果你.profile
从源获取.bashrc
,就会出现无限循环:
$ bash
zsh: segmentation fault (core dumped) bash
(我使用 zsh,这就是 zsh 报告段错误的原因。)
您可以放置保护装置来确保这些文件最多被获取一次,但是谁知道还有什么可能发生奇怪的互动?
对于您的环境变量问题,这取决于您如何启动此交互式非登录 shell。请尝试.pam_environment
一下。