Ничего неверного в вашем подходе я не увидел. Можно использовать так, как вы написали в своем примере. Если вам нужна альтернативная версия, то можно и так:
while read line
do
my_array=("${my_array[@]}" $line)
done
echo ${my_array[@]}
Если выполнить такой скрипт, то данные будут считываться со стандартного ввода пока не будет нажат Ctrl+D