如果每次运行脚本的时候都能够启动一个新的bash shell(即便只是某个用户启动了一个bash shell),将会非常的方便。有时候,你希望为shell会话设置某些shell功能,或者只是为了确保已经设置了某个文件。
回想一下当用户登入bash shell时需要运行的启动文件。另外别忘了,不是所有的发行版中都包含这些启动文件。基本上,依照下列顺序所找到的第一个文件会被运行,其余的文件会被忽略:
- $HOME/.bash_profile
- $HOME/.bash_login
- $HOME/.profile
因此,应该将需要在登录时运行的脚本放在上面第一个文件中。
每次启动一个新shell时,bash shell都会运行.bashrc文件。可以这样来验证:在主目录下的.bashrc文件中加入一条简单的echo语句,然后启动一个新shell。
$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
echo "I'm in a new shell!"
$
$ bash
I'm in a new shell!
$
$ exit
exit
$
.bashrc文件通常也是通过某个bash启动文件来运行的。因为.bashrc文件会运行两次:一次是当你登入bash shell时,另一次是当你启动一个bash shell时。