ログインと非ログインの対話型シェルの初期化ファイルが異なるのはなぜですか?

ログインと非ログインの対話型シェルの初期化ファイルが異なるのはなぜですか?

私はログインシェルと非ログインインタラクティブシェルの違いを理解していますが、前者がsource ~/.bash_profile1で後者がsourceである理由をまったく理解していません~/.bashrc

私が知る限り、~/.bash_profileいくつかのソースから見たすべての例は~/.bashrc。したがって、実際に質問は次のように要約されます。なぜ~/.bash_profileログインシェルにソースコードのみを提供するのですか?

一部の環境変数は一度だけ設定する必要があり、繰り返し購入を許可する方法でこれらの設定の一部を作成するのは少し難しいかもしれません。たとえば、次のようなコレクションがあるとします~/.bash_profilePATH

PATH=/my/custom/path:$PATH

これらのリソースを複数回検索すると、最初にインスタンスが~/.bash_profile重複します。このような重複を避けるように設定を作成することはそれほど難しくありませんが、上記の設定の単純さと利便性を上回ることは困難です。/my/custom/pathPATHPATH

~/.bash_profileこれらの冗長設定を処理するために必要な追加の複雑さを避けることが、ログインシェルを介して設定される主な理由ですか?

それとも、ログインおよび非ログインインタラクティブシェルの共通初期化ファイルがないというより重要な理由はありますか?


1私が言及した内容のほとんどは「または」~/.bash_profileで置き換える必要があります。省略された単純化が真実を損なわないことを願っています。~/.bash_profile~/.profile~/.profile

ベストアンサー1

おすすめ記事