Bashのマニュアルは次のように言います:
」
[-+]O [shopt_option]
shopt_option is one of the shell options accepted by the
shopt builtin (see SHELL BUILTIN COMMANDS below). If
shopt_option is present, -O sets the value of that option;
+O unsets it. If shopt_option is not supplied, the names
and values of the shell options accepted by shopt are
printed on the standard output. If the invocation option
is +O, the output is displayed in a format that may be
reused as input.
」
しかし、現在bashインスタンスにデフォルトでextglobオプションが設定されているとしましょう。 bashを実行して新しいインスタンスを呼び出すと、bash +O extglob
extglobは新しいインスタンスに対して引き続き設定されます。ただし、 shopt -u extglob
新しいインスタンスで実行すると、extglobは設定解除されます。
どうしたの?なぜbash [-+]O opt_name
動作しないのですか?
問題に対する私の唯一の推測は、おそらく私が走ったときにbash +O extglob
最初にブートローダーextglobのbashを閉じてから再度bashします。始めるすべての設定ファイルを読み込み、extglobのようにデフォルトでオンにする必要があるすべてのshoptオプションを有効にします。したがって、extglobが最初に無効になっていても再度有効にしてください。