Linux下Bash配置文件的执行顺序


翻译自Linux 101 Hacks: 84

下列文件的执行顺序是什么

/etc/profile
~/.bash_profile
~/.bashrc
~/.bash_login
~/.profile
~/.bash_logout

交互式登录shell的执行顺序

下面的伪代码将说明这些文件的执行顺序

execute /etc/profile
IF ~/.bash_profile exists THEN
    execute ~/.bash_profile
ELSE
    IF ~/.bash_login exist THEN
        execute ~/.bash_login
    ELSE
        IF ~/.profile exist THEN
            execute ~/.profile
        END IF
    END IF
END IF

当你从交互式shell中注销,以下是执行顺序:

IF ~/.bash_logout exists THEN
    execute ~/.bash_logout
END IF

请注意/etc/bashrc是通过~/.bashrc执行,如下所示:

# cat ~/.bashrc
IF [ -f /etc/bashrc ]; then
. /etc/bashrc
FI

非登录交互式shell的执行顺序

当你启动一个非登录交互式shell,下面是执行顺序

IF ~/.bashrc exists THEN
    execute ~/.bashrc
END IF

注意:当一个非交互式shell启动,它会寻找环境变量ENV,并执行包含在环境变量ENV中的文件。


文章作者: Kiba Amor
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 Kiba Amor !
  目录