Вы можете сделать то, что намереваетесь, таким простым способом:
#!/bin/bash
source_id='
1 one
2 two
3 three
4 four
5 five'
echo "$source_id" | sed '/^ *$/d' | while read id name
do
echo "id is $id and name is $name"
done
Если по какой-то причине вам НУЖНО использовать массивы, это правильный синтаксис для него:
#!/bin/bash
source_id=(1 2 3 4 5)
target_id=(one two three four five)
for (( i=0; i < "${#source_id[@]}" ; i++))
do
echo "id is ${source_id[$i]} and name is ${target_id[$i]} "
done