Bash виконує розбиття слів на рядках сам по собі - насправді, найчастіше, уникаючи цього питання, і причина цитування настільки важлива. Легко використовувати це у вашому випадку: просто покладіть рядок у масив, не цитуючи його - bash використовуватиме розділення слів для розділення окремих елементів. Припустимо, що ваша рядок зберігається у змінній $str
,
ar=($str) # no quotes!
поверне масив з 5 елементів. Індекс масиву - це ваш індекс слів (рахує від 0, як у більшості мов сценарію та програмування), тобто "Вік" доступний за допомогою
${ar[1]} # 0 => Name, 1 => Age, 2 => Sex, 3 => ID, 4 => Address
або, якщо вам потрібно знайти індекс елемента за вмістом, переведіть цикл на масив, тобто
function el_index {
cnt=0; for el in "${ar[@]}"; do
[[ $el == "$1" ]] && echo $cnt && break
((++cnt))
done
}
el_index "Age" # => 1