在Bash启动时会加载配置文件。

login shell:

启动加载文件有:


[html] view plain copy print?

  1. /etc/profile  

  2. ~/.bash_profile  

  3. ~/.bash_login  

  4. ~/.profile  




程序将依次执行这些文件,如果你加上选项"--noprofile"启动程序,bash将不会解析上述文件

当Bash推出时,会检查~/.bash_logout。

non-login shell:

如果是非登录的bash启动后,它会检查~/.bashrc如果你使用了,--norc选项它就不会执行检查,也可以使用--rcfile选项去指定检查目标。

当然在一部分系统中,~/.bash_profile中会包含:


[python] view plain copy print?

  1. if [ -f ~/.bashrc ]; then . ~/.bashrc; fi  




上面说的两种情况属于交互式启动。


还有一种情况是非交互式启动。

首先,Bash先检查环境变量中有没有BASH_ENV变量。有解析他。

把它的值作为文件名,查找这个文件。

类似的动作,用命令说明如下:


[python] view plain copy print?

  1. if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi