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中执行就好了。
新闻热点
疑难解答