Tôi có một biến chứa chuỗi phân cách bằng dấu cách:
line="1 1.50 string"
Tôi muốn chia chuỗi đó với dấu cách là dấu phân cách và lưu kết quả vào một mảng, sao cho như sau:
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
đầu ra
1
1.50
string
Ở đâu đó tôi đã tìm thấy một giải pháp không hiệu quả:
arr=$(echo ${line})
Nếu tôi chạy các câu lệnh echo ở trên sau này, tôi nhận được:
1 1.50 string
[empty line]
[empty line]
Tôi cũng đã thử
IFS=" "
arr=$(echo ${line})
với kết quả tương tự. Ai đó có thể giúp đỡ không?
set -f; arr=($string); set +f
có vẻ là nhanh hơnread -r -a <<< $string
.