在上一篇日志中碰到了rvm安装的ruby无法执行的问题,借机补习了一下bash的基础知识。

作为交互式login shell执行时,bash执行的默认配置文件顺序如下:

  • /etc/profile 如果存在,必执行
  • ~/.bash_profile 如果存在,不执行后两个
  • ~/.bash_login 如果存在,不执行后一个
  • ~/.profile

作为交互式login shell退出时,bash执行的配置文件是:

  • ~/.bash_logout

作为交互式非login shell执行时,bash执行的默认配置文件顺序如下:

  • /etc/bash.bashrc
  • ~/.bashrc

作为非交互式shell执行时,读取环境变量BASH_ENV,并将该变量展开后的值作为配置文件名执行:

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