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.bashrc
Bashは同様の発音を持っています~/.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
。