Shell script not working accordingly

loop=y
while [ "$loop" = y ]
do
clear
tput cup 5 15
echo -n "People Database"
echo -n "===================================="
tput cup 8 12
echo -n "L-Print Last Names"
tput cup 9 12
echo -n "F-Print First NAmes"
tput cup 10 12
echo -n "C-Print First Name, Last Name sorted by city"
tput cup 11 12
echo -n "S-Print First Name, Last Name, State sorted by state"
tput cup 12 12
echo -n "Q-Exit the program : "
tput cup 12 32
read value || Continue
 case "$value" in
   [Ll])  ./lastnames ;;
   [Ff]) ./firstnames ;;
   [Cc]) ./sort_city ;;
   [Ss]) ./sort_state ;;
   [Qq]) exit ;;
   *) tput cup 14 4 ; echo "Invalid choice"; read value ;;
 esac
done

When i try to execute this the case l,f,c and s donot execute corresponding scripts... only case Q works fine... All other scripts are executed when directly run from command prompt... What am i missing?

I took your code verbatim (though you didn't use code tags to surround it) and my test worked just fine.

just put a "break" after esac!

1) try using absolute pathnames for your actions in case-esac structure.
2) what you get for the script execution when using

bash -x 

( tracing )