May 22, 2013

Need help with this shell script

I made a shell script to make it easier to ssh, ssh with port forwarding, and mount sshfs on my 3 amazon servers. This is my first time making an advanced shell script and I keep getting the error:
main.sh: line 98: syntax error: unexpected end of file
It asks me what I want to do. I type 1 and hit Enter so I can SSH to one of my servers. Then I get the error and the script ends. I don't know what's wrong.

#!/bin/bash

printf "What do you want to do?\n\n"
printf " [1] Regular SSH\n"
printf " [2] SSH with port forwarding\n"
printf " [3] Mount a server with SSHFS\n"
read -p 'Pick one: ' dowhat

if [ $dowhat == "1" ]
then
printf "SSH to what server?\n\n"
printf " [1] Server 1\n"
printf " [2] Server 2\n"
printf " [3] Backup server\n"
read -p 'Pick one: ' ssh
if [ $ssh == "1" ]
then
printf "SSHing to Server 1...\n"
ssh ubuntu@[server1] -p 993
exit 0
if [ $ssh == "2" ]
then
printf "SSHing to Server 2...\n"
ssh ubuntu@[server2] -p 993
exit 0
if [ $ssh == "3" ]
then
printf "SSHing to the backup server...\n"
ssh ubuntu@[backup-server] -p 993
exit 0
else
printf "Invalid answer. Please try again.\n"
exit 0
fi
elif [ $dowhat == "2" ]
then
printf "SSH (port forwarding) to what server?"
printf " [1] Server 1\n"
printf " [2] Server 2\n"
printf " [3] Backup server\n"
read -p 'Pick one: ' sshfr
printf "Forward port #"
read -p 'Pick one: ' fport
printf " to port on server #"
read -p 'Pick one: ' tport
printf "\n"
if [ $sshfr == "1" ]
then
printf "SSHing to Server 1 and forwarding port ${fport} to port ${tport}...\n"
ssh ubuntu@[server1] -p 993 -L ${fport}:localhost:${tport}
exit 0
if [ $sshfr == "2" ]
then
printf "SSHing to Server 2 and forwarding port ${fport} to port ${tport}...\n"
ssh ubuntu@[server2] -p 993 -L ${fport}:localhost:${tport}
exit 0
if [ $sshfr == "3" ]
then
printf "SSHing to the backup server and forwarding port ${fport} to port ${tport}...\n"
ssh ubuntu@[backup-server] -p 993 -L ${fport}:localhost:${tport}
exit 0
else
printf "Invalid answer. Please try again.\n"
exit 0
fi
elif [ $dowhat == "3" ]
then
printf "Mount what server?"
printf " [1] Server 1\n"
printf " [2] Server 2\n"
printf " [3] Backup server\n"
read -p 'Pick one: ' sshfs
printf "Mount root to what folder? \(e.g. ~/AmazonEC2\) "
read -p 'Pick one: ' mount
if [ $sshfs == "1" ]
then
printf "Mounting Server 1 to ${mount}...\n"
sshfs ubuntu@[server1]:/ ${mount}
exit 0
if [ $sshfs == "2" ]
then
printf "Mounting Server 2 to ${mount}...\n"
sshfs ubuntu@[server2]:/ ${mount} -p 993
exit 0
if [ $sshfs == "3" ]
then
printf "Mounting the backup server to ${mount}...\n"
sshfs ubuntu@[backup-server]:/ ${mount} -p 993
exit 0
else
printf "Invalid answer. Please try again.\n"
exit 0
fi
else
printf "Invalid answer. Please try again.\n"
exit 0
fi

Click Here!