私の非インタラクティブbashシェルにはがありextglob off
ます。コマンドの直前のステートメントでオンにしたいのshopt -s extglob
ですが、if .. then .. else
ブロック内にあるとどういうわけか登録されないことに気づきました。
次のextglob-dependantコマンドは無効です:syntax error near unexpected token '('
。
どこextglob
に設定でき、なぜ制限があるのですか?これは他のオプションにも当てはまりますか?... GNU bash 4.1.5
これは機能します:
shopt -s extglob
if true ;then
touch a.bcd; ls a.@(bcd)
fi
これは失敗します:
if true ;then
shopt -s extglob
touch a.bcd; ls a.@(bcd)
fi
... line 17: syntax error near unexpected token `('
... line 17: `touch a.bcd; ls a.@(bcd)'