declare -a geoInfo # declare an array cat /tmp/loc.txt |while read line; do geoInfo[${#geoInfo[@]}]="${line}" # set new element to ${line} echo "(${line})" # confirms ${line} is as expected. fine. done echo "${geoInfo[0]}" # blank. Why? echo "${geoInfo[1]}" # blank. Why?