De acordo com as% man_de% manpages
A correctly-formed brace expansion must contain unquoted opening and closing braces, and at least one unquoted comma or a valid sequence expression. Any incorrectly formed brace expansion is left unchanged.
Em sua expressão bash
, a chave externa não possui uma vírgula sem aspas nem uma expressão de seqüência, portanto, não é expandida - resultando em {MYDIR{85,97}}
. Apenas para fins de ilustração, você pode obter o comportamento desejado adicionando uma vírgula à direita:
bash $ echo {MYDIR{85,97},}
MYDIR85 MYDIR97
embora isso introduza um elemento {MYDIR85} {MYDIR97}
extra-presumivelmente indesejado em sua expressão composta _E
.
Eu não sei por que você está vendo um comportamento diferente no Solaris, exceto notar que {CT,{MYDIR{85,97}}{,_E}}
faz remover as chaves externas sob essa condição (embora também aceite o formulário de vírgula final - como csh
e ksh
aparentemente):
csh % echo {MYDIR{85,97}}
MYDIR85 MYDIR97
csh % echo {MYDIR{85,97},}
MYDIR85 MYDIR97