Shell 的类型

登录 Shell

登录 shell 是其参数零的第一个字符是 - 或者以 -login 选项开头的一个。初始化比普通的交互式(子)shell 更全面。

互动壳牌

交互式 shell 是在没有非选项参数的情况下启动的,没有 -c 选项,其标准输入和错误都连接到终端(由 isatty(3) 确定),或者以 -i 选项开头。如果 bash 是交互式的,则设置 PS1 和$ - 包括 i,允许 shell 脚本或启动文件测试此状态。

非交互式 Shell

非交互式 Shell 是一个 shell,用户无法在其中与 shell 进行交互。例如,运行脚本的 shell 始终是非交互式 shell。同样,脚本仍然可以访问它的 tty。

配置登录 shell

登录时:

If '/etc/profile' exists, then source it. 
If '~/.bash_profile' exists, then source it, 
else if '~/.bash_login' exists, then source it, 
else if '~/.profile' exists, then source it. 

对于非登录交互式 shell

启动时:

If `~/.bashrc' exists, then source it.

对于非交互式 shell

启动时:如果环境变量 ENV 为非 null,则展开变量并获取由该值指定的文件。如果 Bash 没有在 Posix 模式下启动,它会在 ENV 之前查找 BASH_ENV。