1. No need to not keep it all in bash
alnu="$(echo $filelet | sed -e 's/[^[:alnum:]]//g')"
2. Be impressed to see what you could echo that would give you anything but a 0 return code:
echo "input valid"
3. What would you get if you executed this on the command line (remember that a script is simply a way to bring multiple repetitive commands together):
find $BACKUPS $filelet* -eq 0 ] ### Am I allowed to do this? is syntax right?
4. Allowed yes, but why not use the return code $? which you have used before?
initrestore=$(tar -xvzf "$rfilename".tar.gz $RESTORES) ##### am I allowed do this either?
5. Not sure I see the point to listing something already stored manually in another file. Also you have a typo in your 'filename' variable:
if [ initrestore -eq 0 ]; then
echo "Restoring "$filename" selected" # variable above is called rfilename
ls -l $RESTORES
6. Not sure what this supposed to be doing?
7. You still seem to have an issue with counting when it comes to how many times you open an if and how many times you close it. Count here is open 3 and close 2 (hence error message)