Відповіді:
VotePedro="Vote for Pedro"
votePedroArray=(${VotePedro})
votePedroArray=("Vote" "For" "Pedro")
, ви отримаєте масив довжиною 3. І ${VotePedro}
такий же, як $VotePedro
у цьому контексті. Для доступу до окремих елементів масиву ви можете використовувати дужки, подібні до того, що ви мали для циклу for у своєму запитанні. наприклад, ${votePedroArray[0]}
це перший елемент у масиві ("Проголосувати" для цього прикладу)
Коли ви залишаєте змінну розширення без котирування, наприклад $VotePedro
, виконуються наступні дії:
IFS
змінної; за замовчуванням це пробіл, вкладка та новий рядок.Таким чином, ви можете розділити рядок на елементи з обмеженим пробілом (припускаючи значення за замовчуванням IFS
), вимкнувши розширення підстановки і розширивши змінну, значенням якої є ця рядок поза лапок.
VotePedro="Vote for Pedro"
set -f
votePedroArray=($VotePedro)
set +f
for i in "${votePedroArray[@]}"; do …
Ви можете безпосередньо зробити розкол в місці використання; це працює навіть у оболонках, таких як sh, які не мають масивів:
VotePedro="Vote for Pedro"
set -f
for i in ${votePedro}; do
set +f
…
done
set +f