Top > Unix > bash

設定ファイルが読み込まれる順番 Edit

順番ログイン対話非ログイン非対話
1/etc/profile××
2~/.bash_profile××
3~/.bashrc×

[A] 対話的ログインシェル
(1) /etc/profile(ディストリによって、この中で/etc/profile.d/*.shを読み込んでいる場合ある)
(2) ~/.bash_profile, ~/.bash_login, ~/.profile の順で見つかったもの1つだけ

     (普通は ~/.bash_profile の中で ~/.bashrc を読み込む)
     (CentOSなどでは ~/.bashrc の中で /etc/bashrc を読み込む)

[B] 対話的非ログインシェル
(1) ~/.bashrc

[C] 非対話的シェル
$BASH_ENV で指定されたファイル。何も指定されていなければ読み込まない

以上を確かめるには、各スクリプトの先頭

echo '/etc/profile loaded'

などと書いておけばよい。

スクリプトの中から他のスクリプトを読み込んでいるため、必ず先頭に書かないといけない。

あるいは、

$ bash --login -x     # 対話的ログインシェル
$ bash -x -i          # 対話的非ログインシェル
$ bash -x -c "pwd"    # 非対話シェル

のように -x つきで起動するという方法もある。

ログインシェルかどうか調べるには(shopt) Edit

今使っているシェルがログインシェルかどうか調べるには

[ao@www etc:0]$ shopt|grep login_shell
login_shell     on

または

shopt -q login_shell

の戻り値を調べる。



URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes