Моя неинтерактивная оболочка bash имеет extglob off
. Я хотел бы включить его в операторе непосредственно перед командой, но я заметил, что когда он shopt -s extglob
находится внутри if .. then .. else
блока, он как-то не регистрируется.
Следующий extglob-зависимая команда недопустима: 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)'
alias e=echo; e hello
не работает: определение псевдонима происходит только на следующей новой строке.