2011年4月13日水曜日

".bash_profile"と".bashrc"の違い

スズキです。

必要に応じて、いつもググってるので、自分のブログに一旦まとめときます。

まず、".bash_profile"はログイン時に読み込まれます。
(Ex. $ su - suzuki)

そして、".bash_profile"のソースを見ると、下記のように".bash_profile"を
読み込んでいるのでログインすると、".bash_profile"と同時に".bashrc"も
読み込まれることになります。

--------【.bash_profile】--------
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
--------

また、".bashrc"のみ読み込まれるパターンもあります。
それは、例えば"bash"などを実行したときです。
(Ex. $ bash)

実際に実験してみます。

まず、"suzuki"ユーザーの".bash_profile"と".bashrc"に

下記のように記述しておきます。

--------【.bash_profile】--------
...
export HOGE1=hoge1
--------【.bashrc】--------
...
export HOGE2=hoge2
--------

そして、suzukiユーザーにスイッチすると、
以下のように".bash_profile"と".bashrc"が読み込まれていることを確認できます。

# su - suzuki
$ echo $HOGE1
hoge1
$ echo $HOGE2
hoge2

次に一旦、下記のように値を変更して、

$ export HOGE1=hoge3
$ export HOGE2=hoge3

"bash"コマンドを実行すると、下記のような結果になりました。

$ bash
$ echo $HOGE1
hoge3
$ echo $HOGE2
hoge2

つまり、".bashrc"のみ読み込まれていることになります。

ということで、Oracleの環境変数を設定しよう...
--------
http://www.suz-lab.com

0 コメント: