.bashrc
私はand .bash_profile
(またはその問題について).bash_login
の違いを理解していますが、bashシェル設定を~/.profile
選択する特別な理由はありますか?.bashrc
.bash_profile
.bashrc
私が理解したのは、新しいbashウィンドウが開くたびに、端末の色、環境変数などの設定が再ロードされます。.bash_profile
ログイン時に一度だけロードされ、これほど十分だと思います。それで、なぜ.bashrc
そこに何も入れますか?
私が考えることができる唯一の理由は、構成をロードするためにシステムからログアウトする必要がないことです。
純粋に伝統的な理由以外は答えを見つけることができません。
ベストアンサー1
シェルオプション(shopt
またはset
)は環境を通して継承されません。どちらもありませんニックネーム。たとえば、すべてのシェルを有効にするには、failglob
RCファイルに含める必要があります。エイリアスをエクスポートした関数に置き換えることができますが、これらのオプションの回避策はありません。
道路伝統的で、マニュアルに.bash_profile
ソースを持つことをお勧めします。.bashrc
したがって、ここで入力した設定はログインシェルと非論理シェルの両方にロードされます。のみ存在する場合は、.bash_profile
実際に使用しているシェルにロードされない可能性があります。
別のケースは、実際の実行コード(たとえば、いくつかの高度なコード)で構成がより複雑であることです。PROMPT_COMMAND
)すべてのシェルで新しく初期化された変数を使用しようとしています。これらの変数はまったくエクスポートされないかもしれませんし、配列ですがエクスポートできない変数かもしれません。
最後のケースはコマンド実行の副作用です。fortune
タスクのリストが各新しいシェルに表示されます。これはシェルの動作を設定するのと同じくらい「構成」ではありません。
ログインシェルとして呼び出されないより一般的なケースもありますbash
(セッションマネージャが他の操作を実行したり、ログインシェルではないため...)。.bash_profile
まったく処理されません。しかし、これはあなたが心配する以上のものかもしれません。