Loose-Info.com
Last Update 2022/06/05
TOP - 各種テスト - bash - 起動時の挙動

起動時の挙動


テスト概要

その1
対話型ログインシェルとして起動した場合の初期化ファイルなどの読み込み挙動

その2
対話型非ログインシェルとして起動した場合の初期化ファイルなどの読み込み挙動

その3
非対話型ログインシェルとして起動した場合の初期化ファイルなどの読み込み挙動

その4
非対話型非ログインシェルとして起動した場合の初期化ファイルなどの読み込み挙動


bash関連ファイルの設定(テスト用)

/etc/profile
# ********** /etc/profile ここから ********** echo "[etc_profile]" # ********** /etc/profile ここまで **********

~/.bash_login
# ********** ~/.bash_login ここから ********** echo "[bash_login]" # ********** ~/.bash_login ここまで **********

~/.bash_logout
# ********** ~/.bash_logout ここから ********** echo "[bash_logout]" # ********** ~/.bash_logout ここまで **********

~/.bash_profile
# ********** ~/.bash_profile ここから ********** echo "[bash_profile]" # ********** ~/.bash_profile ここまで **********

~/.bashrc
# ********** ~/.bashrc ここから ********** echo "[bashrc]" # ********** ~/.bashrc ここまで **********

~/.profile
# ********** ~/.profile ここから ********** echo "[profile]" # ********** ~/.profile ここまで **********


サンプルスクリプトファイル

sample.sh
#!/bin/bash echo $0 exit 0


その1

対話型ログインシェルとして起動した場合の初期化ファイルなどの読み込み挙動

上記bash関連ファイルがすべて存在する場合
-bash-5.1$ bash --login [etc_profile] <--- /etc/profileの実行による出力 [bash_profile] <--- ~/.bash_profileの実行による出力 bash-5.1$ exit logout [bash_logout] <--- ~/.bash_logoutの実行による出力 -bash-5.1$

~/.bash_profile が存在しない場合
-bash-5.1$ bash --login [etc_profile] [bash_login] <--- ~/.bash_loginの実行による出力 bash-5.1$ exit logout [bash_logout] -bash-5.1$ ~/.bash_profile の次に ~/.bash_login を検索して実行

~/.bash_profile、~/.bash_login が存在しない場合
-bash-5.1$ bash --login [etc_profile] [profile] <--- ~/.profileの実行による出力 bash-5.1$ exit logout [bash_logout] -bash-5.1$ ~/.bash_profile、~/.bash_login の次に ~/.profile を検索して実行

その2

対話型非ログインシェルとして起動した場合の初期化ファイルなどの読み込み挙動

-bash-5.1$ bash [bashrc] <--- ~/.bashrcの実行による出力 bash-5.1$ exit exit -bash-5.1$

その3

非対話型ログインシェルとして起動した場合の初期化ファイルなどの読み込み挙動

-bash-5.1$ bash --login sample.sh [etc_profile] <--- [bash_profile] <--- sample.sh [bash_logout] <--- -bash-5.1$ 対話型ログインシェル起動時と同様の初期化ファイルなどが実行される

その4

非対話型非ログインシェルとして起動した場合の初期化ファイルなどの読み込み挙動

-bash-5.1$ bash sample.sh sample.sh -bash-5.1$ 初期化ファイルなどは実行されない

実行環境

GNU bash, version 5.1.16


コード例・出力内容中の表記

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。