Чтобы ответить на ваш вопрос :, одиночный read
считывает (слова первой строки заголовка )в элементы массива. Другие линии не рассматриваются. Вы можете поэкспериментировать с командой readarray
, но это никак не связано с вашей проблемой. YMMV
Массив не нужен. Вместо этого используйте адекватные текстовые инструменты. Попробуйте
#!/bin/bash
FILE="users.txt"
read -p "Please enter first and last name: " fname lname
if grep "$fname.*$lname" $FILE
then echo "exist"
else echo "Not Exist"
fi