Ketika Anda membiarkan ekspansi variabel tanpa tanda kutip, misalnya $VotePedro
, langkah-langkah berikut dilakukan:
- Cari nilai variabel.
- Membagi nilai di setiap blok spasi putih menjadi daftar string. Lebih umum, pemisah adalah karakter dalam nilai
IFS
variabel; secara default itu ruang, tab, dan baris baru.
- Menafsirkan setiap elemen daftar sebagai pola wildcard; untuk setiap elemen, jika polanya cocok dengan beberapa file, maka ganti elemen itu dengan daftar nama file yang cocok.
Dengan demikian, Anda dapat membagi string menjadi elemen-elemen yang dibatasi-spasi (dengan asumsi nilai default IFS
) dengan mematikan ekspansi wildcard dan memperluas variabel yang nilainya string di luar tanda kutip.
VotePedro="Vote for Pedro"
set -f
votePedroArray=($VotePedro)
set +f
for i in "${votePedroArray[@]}"; do …
Anda dapat langsung melakukan pemisahan pada titik penggunaan; ini akan bekerja bahkan pada shell seperti sh yang tidak memiliki array:
VotePedro="Vote for Pedro"
set -f
for i in ${votePedro}; do
set +f
…
done
set +f