porque esta substituição de padrão não está funcionando na matriz?

3

para uma variável z

z="I II III IV V VI VII VIII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX"
echo "${z// /,}"

a saída é I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII,XIII,XIV,XV,XVI,XVII,XVIII,XIX,XX OK.

mas para

Y=(I II III IV V VI VII VIII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX)

echo "${Y[@]// /,}"

a saída é I II III IV V VI VII VIII IX X XI XII XIII XIV XV XVI XVII XVIII XIX XX

    
por munish 10.05.2016 / 13:54

1 resposta

3

Porque para

Y=(I II III IV)

se você fizer:

"${Y[@]// /,}"

Todos os espaços de cada elemento da matriz serão substituídos por , .

Por exemplo:

$ Y=('I foo' 'II bar' III IV)

$ echo "${Y[@]// /,}"
I,foo II,bar III IV

Como você não tem espaços em nenhum dos elementos da matriz, nada deve ser substituído.

    
por 10.05.2016 / 14:06

Tags