Respuestas:
VotePedro="Vote for Pedro"
votePedroArray=(${VotePedro})
votePedroArray=("Vote" "For" "Pedro")
le daría una matriz de longitud 3. Y ${VotePedro}
es lo mismo que $VotePedro
en este contexto. Para acceder a elementos de matriz individuales, puede usar paréntesis similares a los que tenía para el bucle for en su pregunta. por ejemplo, ${votePedroArray[0]}
es el primer elemento en la matriz ("Voto" para este ejemplo)
Cuando deja una expansión variable sin comillas, por ejemplo $VotePedro
, se realizan los siguientes pasos:
IFS
variable; por defecto, espacio, tabulación y nueva línea.Por lo tanto, puede dividir una cadena en elementos delimitados por espacios en blanco (asumiendo el valor predeterminado de IFS
) desactivando la expansión de comodines y expandiendo una variable cuyo valor es esa cadena fuera de las comillas.
VotePedro="Vote for Pedro"
set -f
votePedroArray=($VotePedro)
set +f
for i in "${votePedroArray[@]}"; do …
Puede hacer la división directamente en el punto de uso; esto funcionaría incluso en shells como sh que no tienen matrices:
VotePedro="Vote for Pedro"
set -f
for i in ${votePedro}; do
set +f
…
done
set +f