bashを呼び出すとき、 "--rcfile /dev/null"オプションは "--norc"と同じ効果を持ちますか?

bashを呼び出すとき、 "--rcfile /dev/null"オプションは "--norc"と同じ効果を持ちますか?

XY問題のシナリオを避けるためにこの質問をする理由を説明します。

shopt -s extglobそのようなことが実際に効果があったので私のファイル~/.bashrcに設定したことを覚えています@(pattern-list)

ちょうど確認してみると、~/.bashrcそのオプションはまだ設定されていません。

だから私はそれがどこから来たのかを調べることにしました。

  • bash --norc別のシェルを起動して実行すると、shopt次の行が表示されますextglob off
  • bash --rcfile /dev/nullしかし、次shoptから始めるとextglob on

これは、どのファイルが設定されているかを把握するのに実際には役立ちませんextglob

コメントに基づいPS4=' $BASH_SOURCE:$LINENO: ' bash -lixc true |& grep extglob

   /usr/share/bash-completion/bash_completion:45: shopt -s extglob progcomp
   /usr/share/bash-completion/bash_completion:45: shopt -s extglob progcomp

答え1

Debian / Ubuntuでは、/etc/bash.bashrcBashは同様の発音を持っています~/.bashrc。これを使用することは、Red Hatが/etc/すべてのユーザーに渡すコンパイル時オプションです.bashrc

これDebian ドキュメント--rcfileこれは両方とも上書きする必要があり、両方を--norc読むことを禁止する必要があることを意味するようです。

--norcシェルが対話型の場合は、システム全体/etc/bash.bashrcおよび個人の初期化ファイルを読み取って実行しないでください。~/.bashrc

--rcfile file/etc/bash.bashrcシステム全体の初期化ファイルと標準の個人初期化ファイルの代わりにファイルからコマンドを実行します。~/.bashrc

しかし、@muruがコメントで言ったように、これは間違っている--rcfile /dev/nullようです/etc/bash.bashrc。さて、そこを見てくださいshopt

関連情報