ฉันมีตัวแปรที่มีสตริงคั่นด้วยช่องว่าง:
line="1 1.50 string"
ฉันต้องการแยกสตริงนั้นด้วยช่องว่างเป็นตัวคั่นและเก็บผลลัพธ์ไว้ในอาร์เรย์ดังนั้นต่อไปนี้:
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
เอาท์พุท
1
1.50
string
บางแห่งฉันพบวิธีแก้ปัญหาที่ใช้งานไม่ได้:
arr=$(echo ${line})
ถ้าฉันใช้คำสั่ง echo ข้างต้นหลังจากนี้ฉันจะได้รับ:
1 1.50 string
[empty line]
[empty line]
ฉันก็ลอง
IFS=" "
arr=$(echo ${line})
ด้วยผลลัพธ์เดียวกัน มีคนช่วยได้ไหม
set -f; arr=($string); set +f
read -r -a <<< $string