自动设置shell变量

你希望不管什么时候你登录到你的数据库服务器,各种数据库变量会被自动地设置好。

解决方案:将这些shell变量放到你的home目录下的 .bash_profile文件中。例如,下面的文本就被添加到了.bash_profile中:

export ORACLE_SID=BRDSTN

然后,你退出登录,然后再登录回来,用echo命令显示一下$ORACLE_SID变量,你就会发现,确实可以了。

如果你不想退出然后又登录,那么你可以用.(dot)命令手动运行.bash_profile文件。例如:

$ . $HOME/.bash_profile

.指示shell去source该脚本。Sourcing告诉shell进程:我现在不是已经登录系统了吗,我就不想退出,我想继承我刚才执行的.bash_profile中的用export命令设置的任何变量。

在Bash shell中,source命令等价于.(点)命令。

========How It Works

当用的是Bash shell时,当你首次登录到你的数据库服务器时,有几个特殊的启动文件会被执行:

/etc/profile

~/.bash_profile

~/.bash_login

~/.profile

根据你的Linux系统的版本,也许用的启动文件并不一样。

/etc/profile是由你的系统管理员维护的,修改它,你需要root权限。它里面设置的变量是针对所有用户的。运行完该文件后,Bash shell之后会查找后续的一些文件,并且只会运行它

找到的第1个文件,顺序为~/.bash_profile,~/.bash_login,~/.profile

你应当还要知道2个启动类型文件:

~/.bashrc

~/.bash_logout

如果你启动了一个nonlogin Bash shell,就是通过在命令行中输入bash,那么~/.bashrc就会自动被执行。DBA们将会在~/.bashrc里面放一些命令,目的是确保数据库相关的操作系统

命令会一致地被设置,不管他们用的是login shell还是nonlogin shell。

~/.bash_logout是在你发出exit命令时被执行。