Meu shell bash não interativo possui extglob off. Gostaria de ativá-lo na declaração imediatamente antes de um comando, mas notei que, quando shopt -s extglobestá dentro de um if .. then .. elsebloco, ele de alguma forma não é registrado.
A seguir dependentes de extglob comando não é válido: syntax error near unexpected token '('.
Onde pode extglobser definido e por que existe alguma restrição? Isso se aplica a outras opções? ... GNU bash 4.1.5
Isso funciona:
shopt -s extglob
if true ;then
touch a.bcd; ls a.@(bcd)
fi
Isso falha:
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)'