Saya memiliki variabel yang berisi string yang dibatasi ruang:
line="1 1.50 string"
Saya ingin membagi string itu dengan spasi sebagai pembatas dan menyimpan hasilnya dalam array, sehingga berikut ini:
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
output
1
1.50
string
Di suatu tempat saya menemukan solusi yang tidak berhasil:
arr=$(echo ${line})
Jika saya menjalankan pernyataan gema di atas setelah ini, saya mendapatkan:
1 1.50 string
[empty line]
[empty line]
Saya juga mencoba
IFS=" "
arr=$(echo ${line})
dengan hasil yang sama. Bisakah seseorang membantu?
set -f; arr=($string); set +f
tampaknya lebih cepat daripadaread -r -a <<< $string
.