私の非インタラクティブ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)'