从 ~/.bashrc 获取 ~/.profile 有什么危险?

从 ~/.bashrc 获取 ~/.profile 有什么危险?

我发现很多人反其道而行之。有什么理由说明从 采购 不是一个好主意~/.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,我们就没法说。例如,.profileUbuntu 源上的默认设置.bashrc。现在,如果你.profile从源获取.bashrc,就会出现无限循环:

$ bash  
zsh: segmentation fault (core dumped)  bash

(我使用 zsh,这就是 zsh 报告段错误的原因。)

您可以放置​​保护装置来确保这些文件最多被获取一次,但是谁知道还有什么可能发生奇怪的互动?

对于您的环境变量问题,这取决于您如何启动此交互式非登录 shell。请尝试.pam_environment一下。

相关内容