shell的startup文件

2014-11-24 11:47:47 · 作者: · 浏览: 2

1. 登录非登录和交互非交互式shell


用户登录时(输入用户名密码后)启动的shell是登录shell,登录后仍可使用bash --login来启动一个登录shell


用户启动shell用来解释命令是交互式shell,启动shell用来执行脚本是非交互时shell


2.非交互式shell的startup文件定义在BASH_ENV变量里,一般为空。


3. 交互式登录shell的startup文件是/etc/profile和依次查找~/.bash_profile, ~/.bash_login和~/.profile最先找到的那个。


4. 交互式非登录shell的startup文件是~/.bashrc。 通常会在~/.bash_profile(或其他两个文件)中调用~/.bashrc


测试的过程中发现父shell设置的alias不能传递到子shell里。如果启动非交互式shell以前设置的alias不能在脚本中使用。


其实这也没什么大不了,使用source命令直接在原shell中执行就好了。