下列文件的执行顺序是什么
/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中的文件。