Visit Our UNIX and Linux User Community


Newline in my script-built shell variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Newline in my script-built shell variable
# 8  
Old 06-05-2011
And still for fun: ;-)

you are assuming that the IP address is already in the arp cache. Since it may be not, I have to build my arp cache with the fping command!

M.
# 9  
Old 06-06-2011
I like:
Code:
$ netstat -rn | sed '
> /^127/d
> s/ .* UH .*//
> t
> d
> '
171.186.182.236
$

# 10  
Old 06-06-2011
I did not get this:
where are you asking for the association between an a-priori known MAC address and the IP address assigned from the DHCP?

The scenario:

I'm on machine A with all networking data up and running.
I know that on my subnet there's a machine B whose MAC address is given.
As soon as B is booted-up it takes an IP from the DHCP server on the network and I want to know it.

I'd really be interested in more subtle and keen ways of doing this wrt what I posted in the thread opening.

Thanks,
M.
# 11  
Old 06-06-2011
Well, the arp cache is a great way to see who is out there, so if other methods fail, just ping the broadcast so all hosts echo back and it fills the cache. You may get bridge MACs for more remote hosts.
# 12  
Old 06-06-2011
Quote:
Originally Posted by DGPickett
Code:
> s/ .* UH .*//

I don't get any UH's when I do netstat -rn.
I get two U's and one UG.

But even if I replace UH, I end up with a network, not an IP.
What's that IP address you showed? Is it your host's external IP address? How?
# 13  
Old 06-06-2011
If DHCP or configuration has not given your host an IP, or you do not have PATH MTU, the UH will be missing. Even my windows PC shows its IP on netstat -rn, because the NIC is gateway to the collision domain hosts. You can get it from a U record, too:
Code:
$ netstat -rn
Routing tables
Dest/Netmask                  Gateway            Flags    Use Interface  Pmtu
127.0.0.1             127.0.0.1          UH       0   88959488  lo0        4136
171.186.182.236       171.186.182.236    UH       0   35483654  lan7       4136
171.186.182.0         171.186.182.236    U        2          0  lan7       1500
127.0.0.0             127.0.0.1          U        0          0  lo0        4136
default               171.186.182.1      UG       0          0  lan7       1500
$ netstat -rn | sed -n '
  /^127/d
  s/^[1-9][0-9.]*  *\([1-9][0-9.]*\)  *U .*/\1/p
 '
171.186.182.236
$


Last edited by DGPickett; 06-06-2011 at 03:27 PM..
# 14  
Old 06-07-2011
Your solution is not very robust. netstat -nr always give me something like this on Linux:
Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 br0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 br0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 br0


Previous Thread | Next Thread
Test Your Knowledge in Computers #203
Difficulty: Medium
Perl is not an interpreted language.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Converting shell to Perl I run into shell built in function trap and need alternative in Perl

I am working on converting shell to Perl script. In shell we have built in function trap Do you know alternative in Perl or actually we don't need it? Thanks for contribution (3 Replies)
Discussion started by: digioleg54
3 Replies

2. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist. diff=$1$2.diff id=$2 new=new_$diff echo "My id is $1" echo "I want to sync for user account $id" ##awk command I am using is as below cat $diff | awk... (2 Replies)
Discussion started by: Ashunayak
2 Replies

3. Shell Programming and Scripting

SH script, variable built command fails, but works at command line

I am working with a sh script on a solaris 9 zone (sol 10 host) that grabs information to build the configuration command line. the variables Build64, SSLopt, CONFIGopt, and CC are populated in the script. the script includes CC=`which gcc` CONFIGopt=' --prefix=/ --exec-prefix=/usr... (8 Replies)
Discussion started by: oly_r
8 Replies

4. UNIX for Dummies Questions & Answers

newline character in a variable

variable="unix\nlinux" echo $variable expected output: unix linux :wall: can i do that ?? thanks in advance!! (3 Replies)
Discussion started by: sathish92
3 Replies

5. Shell Programming and Scripting

How can I add a newline In a text file using Shell Script

Good day ... Well i do have this project in school, in our Principles Of Operating System Class We are using Cygwin.... And our project goes like this... Create a dictionary using cygwin. Display the following menu at the start of execution 1-add a word in the dictionary # specify the... (1 Reply)
Discussion started by: kpopfreakghecky
1 Replies

6. UNIX for Dummies Questions & Answers

How can I add a newline In a text file using Shell Script

Good day ... Well i do have this project in school, in our Principles Of Operating System Class We are using Cygwin.... And our project goes like this... Create a dictionary using cygwin. Display the following menu at the start of execution 1-add a word in the dictionary # specify... (1 Reply)
Discussion started by: kpopfreakghecky
1 Replies

7. Shell Programming and Scripting

awk built-in variable for input file

Hi guys, Does awk have a built-in variable which I can use to display the input file it's currently reading? I'm currently concatenating multiple files using awk and later on do some parsing. But for now, I want to add an extra column in the main output data file - basically putting in the... (3 Replies)
Discussion started by: Det7
3 Replies

8. UNIX for Advanced & Expert Users

Variable assignments specified with eval shell built-in

According to the POSIX specifications eval is a special shell built-in, which should imply that variable assignments specified together with it should remain in effect after the built-in completes. Thus one would expect IFS to be changed after this: var=$'a\nb c' $ IFS=$'\n' eval ' for i in... (4 Replies)
Discussion started by: Scrutinizer
4 Replies

9. UNIX for Dummies Questions & Answers

built in variable to hold the name of therunning script...

Hi, I have multiple functions that can be called by any shell script. These functions have inbuilt echo statements to logs their activity into a log file. When I run multiple shell scripts that call these functions, they all log into the same log file and I am not able to differentiate which... (2 Replies)
Discussion started by: new_learner
2 Replies

10. UNIX for Dummies Questions & Answers

Running Built-ins in current shell

Hi, Can any one please describe why I am not able to run any built-in commands in current shell? Thanks. (5 Replies)
Discussion started by: siba.s.nayak
5 Replies

Featured Tech Videos