Help with bash script to get continual input

Tech_20
Tech_20 used Ask the Experts™
on
I need a script to take input in the form of a server name, perform the nslookup command, output only the actual IP server address (not the DNS server) and print the output. I have part of the script but need help on the rest. Thanks.

______

#!/usr/bin/bash

echo “Enter a ServerName.\n”
read serverName
nsLook = $(echo nslookup $serverName | egrep -o “Non*" | # this is the part where I need help with getting the last IP address
print nsLook

echo “Do you have another?\n”
case:
    yes)
        next;;    # this is the part where I need help
    no)
        break;;
esac
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Most Valuable Expert 2015

Commented:
#!/bin/bash

function get_nameservers() {
      read -p "Enter a Server Name: " serverName
      nsLook=`nslookup $serverName`
      server_addy=`echo $nsLook | cut -d " " -f2`
      echo $server_addy
      get_nameservers
}

get_nameservers
Most Valuable Expert 2015

Commented:
Though unless you're configured to use multiple DNS servers, the answer back should always be the same.
Most Valuable Expert 2015

Commented:
I misread your question and have changed one of the lines:


#!/bin/bash

function get_nameservers() {
      read -p "Enter a Server Name: " serverName
      nsLook=`nslookup $serverName`
      server_addy=`echo $nsLook | cut -d ":" -f6`
      echo $server_addy
      get_nameservers
}

get_nameservers
OWASP: Avoiding Hacker Tricks

Learn to build secure applications from the mindset of the hacker and avoid being exploited.

Author

Commented:
Hello Jan,

Thanks for the quick response. This extracted only the nameserver at first. Then after trying it again (and double-checking the terminal session to confirm), it began to work. That buggy issue may have to do with the version of Terminal (OS X El Capitan) I am using but it's currently working.

I have another question regarding an event where there is no server found. Instead of a lengthy error in the form of all of the names of the files in the working directory, is there a possible if/then statement to use in that code block to return "N/A" if the variable $server_addy has no value?
Most Valuable Expert 2015
Commented:
This?

#!/bin/bash

function get_nameservers() {
      read -p "Enter a Server Name: " serverName
      nsLook=`nslookup $serverName`
      server_addy=`echo $nsLook | cut -d ":" -f6`
      if [ -z "$server_addy" ]; then
      echo "Server IP not found, possible invalid domain name"
      else
      echo $server_addy
      fi
      get_nameservers
}

get_nameservers

Author

Commented:
That works! Thanks, Jan!

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial