Sponsored Content
Full Discussion: I need help with...<various>
Top Forums Shell Programming and Scripting I need help with...<various> Post 302228301 by era on Saturday 23rd of August 2008 08:47:04 PM
Old 08-23-2008
You can have as many commands as you like between the "do" and "done", and of course, they can be new loops with "do" and "done" in them. Not sure where you'd need that, though. You can simply modify the sed script to shuffle things around in a different order if that's how you like them.

Code:
sed "s/.*/IP for $host is & at $nameserver"

The "s/from/to/" command in sed will substitute the stuff in "from" with the stuff in "to" on each line. In this case we are replacing the IP address printed by dig with the longer string. & retrieves the "from" string into the "to" string. Dot star is the regular expression for "everything on this line" (dot means any character, star means any number of times).

Just to show an alternate way of doing it, here's a loop which prints the message piecemeal.

Code:
#!/bin/sh
host=$1
dig +short ns $host |
while read nameserver; do
  echo -n "IP for $host is "
  dig +short @$nameserver $host | tr '\n' ' '  # replace final newline with space
  echo "at $nameserver"
done

Or you can interpolate with backticks

Code:
  echo IP for $host is `dig +short @$nameserver $host` at $nameserver

Backticks AKA grave accents (ASCII 96) capture the output of one command so you can use it in the command line of another command. Notice that those are not regular single quotes. Copy/paste them if you can't find them on your keyboard.

Last edited by era; 08-23-2008 at 09:57 PM.. Reason: Show alternate way of coding it with echos to print the desired message
 
RESOLVER(5)							File Formats Manual						       RESOLVER(5)

NAME
resolver - resolver configuration file SYNOPSIS
/etc/resolv.conf DESCRIPTION
The resolver is a set of routines in the C library (resolv(3)) that provide access to the Internet Domain Name System. The resolver con- figuration file contains information that is read by the resolver routines the first time they are invoked by a process. The file is designed to be human readable and contains a list of keywords with values that provide various types of resolver information. On a normally configured system this file should not be necessary. The only name server to be queried will be on the local machine, the domain name is determined from the host name, and the domain search path is constructed from the domain name. The different configuration options are: nameserver Internet address (in dot notation) of a name server that the resolver should query. Up to MAXNS (currently 3) name servers may be listed, one per keyword. If there are multiple servers, the resolver library queries them in the order listed. If no nameserver entries are present, the default is to use the name server on the local machine. (The algorithm used is to try a name server, and if the query times out, try the next, until out of name servers, then repeat trying all the name servers until a maximum number of retries are made). domain Local domain name. Most queries for names within this domain can use short names relative to the local domain. If no domain entry is present, the domain is determined from the local host name returned by gethostname(2); the domain part is taken to be everything after the first `.'. Finally, if the host name does not contain a domain part, the root domain is assumed. search Search list for host-name lookup. The search list is normally determined from the local domain name; by default, it begins with the local domain name, then successive parent domains that have at least two components in their names. This may be changed by listing the desired domain search path following the search keyword with spaces or tabs separating the names. Most resolver queries will be attempted using each component of the search path in turn until a match is found. Note that this process may be slow and will gen- erate a lot of network traffic if the servers for the listed domains are not local, and that queries will time out if no server is available for one of the domains. The search list is currently limited to six domains with a total of 256 characters. The domain and search keywords are mutually exclusive. If more than one instance of these keywords is present, the last instance will override. The keyword and value must appear on a single line, and the keyword (e.g. nameserver) must start the line. The value follows the keyword, separated by white space. FILES
/etc/resolv.conf SEE ALSO
gethostbyname(3N), resolver(3), hostname(7), named(8) Name Server Operations Guide for BIND 4th Berkeley Distribution December 14, 1989 RESOLVER(5)
All times are GMT -4. The time now is 07:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy