Linux.com

jacob.schooley

jacob.schooley

  • Linux.com Member
  • Posts: 2
  • Member Since: 22 May 13
  • Last Logged In: 23 May 13

Latest Posts

Posted by
Topic
Post Preview
Posted
  • jacob.schooley
    RE: Need help with this shell script
    [quote="mfillpot"]Your problems is from having multiple if statements without closing them. For example with your if statements in lines 93 to 129 you have multiple if statements start and only one ends, I beleive you intended them to be a single statement, if that is the case you will want to use if..elif..fi, so the middle statements would start with elif.[/quote] Thanks so much! I wonder how I could have forgotten about the elif statements when I was using them in the main one.
    Link to this post 23 May 13

    mfillpot said:

    Your problems is from having multiple if statements without closing them. For example with your if statements in lines 93 to 129 you have multiple if statements start and only one ends, I beleive you intended them to be a single statement, if that is the case you will want to use if..elif..fi, so the middle statements would start with elif.

    Thanks so much! I wonder how I could have forgotten about the elif statements when I was using them in the main one.

  • jacob.schooley
    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: [code]main.sh: line 98: syntax error: unexpected end of file[/code] 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. [code] #!/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 [/code]
    Link to this post 22 May 13

    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

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board