मेरे पास एक चर है जिसमें एक स्थान-सीमांकित स्ट्रिंग है:
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
।