Quando você deixa uma expansão variável sem aspas, por exemplo $VotePedro
, as seguintes etapas são executadas:
- Procure o valor da variável.
- Divida o valor em cada bloco de espaço em branco em uma lista de cadeias. De maneira mais geral, os separadores são os caracteres no valor da
IFS
variável; por padrão, é espaço, tabulação e nova linha.
- Interprete cada elemento da lista como um padrão curinga; para cada elemento, se o padrão corresponder a alguns arquivos, substitua esse elemento pela lista de nomes de arquivos correspondentes.
Assim, você pode dividir uma sequência em elementos delimitados por espaço em branco (assumindo o valor padrão de IFS
) desativando a expansão de curinga e expandindo uma variável cujo valor é essa sequência fora das aspas.
VotePedro="Vote for Pedro"
set -f
votePedroArray=($VotePedro)
set +f
for i in "${votePedroArray[@]}"; do …
Você pode fazer a divisão diretamente no ponto de uso; isso funcionaria mesmo em shells como sh que não possuem matrizes:
VotePedro="Vote for Pedro"
set -f
for i in ${votePedro}; do
set +f
…
done
set +f