助け合いフォーラム
この問題はプレミアムコンテンツです。
読み込みフローについての確認
教材にいつもお世話になっております。
早速なんですが、この問題の bash における読み込みフローチャートに疑問です。
/.profile が存在する場合、/.bashrc の読み込み設定有無判定が入るのはわかるのですが、
/.profile が存在しない場合、/.bashrc の読み込み判定は飛ばされるのですか。
お忙しいところ申し訳ございませんが、確認のほどよろしくお願い致します。
「.bash_profile」と、「.bash_login」と、「.profile」には「.bashrc」を読み込むための設定が書いてあります。「.bash_profile」の中はこんな感じです↓
if [ -f /.basharc ]; then/.bashrcを読み込む設定があるか」てことです。
. /.bashrc/.bashrcを読み込む設定があるか」にあたります。
fi
これは「もし(if ~ fi) .bashrcというファイルがあるなら(-f)、そのファイルに書いてあるコマンドを実行する( . )」という意味です。
これがフローチャートでいうところの「
つまり、「(見つかったファイルの中に)
なので、「/.profile」が無ければ、「/.bashrc の読み込み判定」は行われないです。/.profile」の中だからです。
なぜなら「/.bashrc の読み込み判定」が行われるのは、「
ちなみに、bashが、.bash_profileと、.bash_loginと、.profileをこの順番で探して、一番最初に見つかったファイルを読み込みます。ファイルが見つかったらそれより後は探さないのです。bashのマニュアルに書いてありました。
でも、そもそも.bash_loginと、.profileはもともとないことの方が多いかもしれません。
私の環境(centos stream)にはなかったです。
コメント
この投稿に対して返信しませんか?
s shunh3
2022/06/23 14:40
すみません、ファイルの中身をよく見てませんでした。 確かにおっしゃる通りで、環境(Ubuntu,CentOS 等)によって初期ファイルが全く異なりますね。 Ubuntu Server 22.04 だと .profile があって、CentOS 7 だと .bash_profile があって、 かつ .bashrc をリードする処理が入っているので、結果的に .bashrc を読み込んでいますね。 すみません!図の誤りかと思ってましたが、あってますね! 申し訳ございませんでした! (Markdown記法のせいで取り消し線が入ってるのはご了承ください…orz)