![bash [-+]O shopt_name このマニュアルで期待どおりに機能しません。](https://linux33.com/image/15246/bash%20%5B-%2B%5DO%20shopt_name%20%E3%81%93%E3%81%AE%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB%E3%81%A7%E6%9C%9F%E5%BE%85%E3%81%A9%E3%81%8A%E3%82%8A%E3%81%AB%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82.png)
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が最初に無効になっていても再度有効にしてください。