У вас нет маркера done
для соответствия оператору while... do
.
часто бывает лучше замкнуть -сценарий, изменив проверку файла, что приводит к тому, что if.. then.. else занимает не так много строк. т.е.:
#/bin/sh
file="C:/khushal/prop.txt"
if ! [ -f "$file" ]
then
echo "$file not found."
exit 1
fi
echo "$file found."
while IFS= read -r key value
do
key=$(echo $key | tr '.' '_')
eval ${key}=\${value}
echo "User Id = " ${db_uat_user}
echo "user password = " ${db_uat_passwd}
done