• 6642阅读
  • 0回复

~/.bash_profile和.bashrc [复制链接]

上一主题 下一主题
离线zncggaofei
 
只看楼主 正序阅读 楼主  发表于: 2008-04-03
— 本帖被 XChinux 执行加亮操作(2008-04-04) —
转载: http://www.linux-cn.com/html/linux/other/20070509/36165.html

Bash下每个用户都可以配置两个初始文件:.bash_profile和.bashrc。man bash中的相关解
释如下:

,------------------------------------------------------------
| ~/.bash_profile
| The personal initialization file, executed for login shells
| ~/.bashrc
| The individual per-interactive-shell startup file
`------------------------------------------------------------

以前一直没细想两者的区别,今天整理了一下。

* 每次bash作为login shell启动时会执行.bash_profile。

主要有(我所知道的)有以下几种情形:

a) 每次登录到服务器时默认启动的shell

b) “su -l [USER]”时进入的shell

c) “bash --login”进入的shell

* 每次bash作为普通的交互shell(interactive shell)启动时会执行.bashrc

常见的有:

i) “su [USER]”进入的shell
ii) 直接运行“bash”命令进入的shell。

** 注意

1, 在shell脚本中“#!/usr/bin/bash”启动的bash并不执行.bashrc。因为这里的bash不是
interactive shell。

2, bash作为login shell(login bash)启动时并不执行.bashrc。虽然该shell也是interactive shell,
但它不是普通的shell。

* 一般.bash_profile里都会调用.bashrc

尽管login bash启动时不会自动执行.bashrc,惯例上会在.bash_profile中显式调用.bashrc。

,-------------------------------------
| if [ -f ~/.bashrc ]; then
| . ~/.bashrc
| fi
`-------------------------------------

* 试验脚本

用以下文件可以很方便的验证以上所述。

,-------------------------------------
| -bash-2.05b$ cat .bashrc
| echo "in bashrc"
| export TEST="rc"
|
| -bash-2.05b$ cat .bash_profile
| echo "in bash profile"
|
| -bash-2.05b$ cat test.sh
| #!/bin/bash
| echo $TEST
| bash-2.05b$
`-------------------------------------
There is someone that is coming or passing away in your life around the clock, so you may lose sight of those seen, and forget those remembered. There is gain and loss in your life, so you may catch sight of those unseen, and remember those forgotten. Nevertheless, doesn’t the unseen exist for sure? Will the remembered remain forever?
快速回复
限100 字节
 
上一个 下一个