আমার একটি ভেরিয়েবল রয়েছে যার মধ্যে একটি স্পেস-ডিলিমিট স্ট্রিং রয়েছে:
line="1 1.50 string"
আমি সেই স্ট্রিংটিকে একটি ডিলিমিটার হিসাবে স্পেস দিয়ে বিভক্ত করতে চাই এবং ফলাফলটিকে একটি অ্যারেতে সঞ্চয় করতে চাই, যাতে নিম্নলিখিতটি:
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
আউটপুট
1
1.50
string
কোথাও আমি একটি সমাধান পেয়েছি যা কার্যকর হয় না:
arr=$(echo ${line})
আমি যদি এর পরে উপরের প্রতিধ্বনিগুলি চালনা করি তবে আমি পাই:
1 1.50 string
[empty line]
[empty line]
আমিও চেষ্টা করেছি
IFS=" "
arr=$(echo ${line})
একই ফলাফল সঙ্গে। দয়া করে কেউ সাহায্য করতে পারেন?
set -f; arr=($string); set +f
যতো তাড়াতাড়ি হবে বলে মনে হয়read -r -a <<< $string
।