Bash scripting help...

Marko Vojinovic vvmarko at panet.co.yu
Mon Aug 7 21:26:13 UTC 2006


I am writing a bash script to discover a MAC address of a remote host based on 
it's IP. Found that arping might be useful (is there a better method?), so I 
get

# arping -f -I eth0 $ipnumber
ARPING 10.0.0.3 from 10.0.0.1 eth0
Unicast reply from 10.0.0.3 [00:0C:29:C8:DE:E2]  1.040ms
Sent 1 probes (1 broadcast(s))
Received 1 response(s)

but the problem is that I just need to set the variable, say macaddr, to the 
above value, hopefully lowercase, without the [ and ]. Next obvious thing 
was:

# arping -f -I eth0 $ipnumber | grep Unicast
Unicast reply from 10.0.0.3 [00:0C:29:C8:DE:E2]  1.040ms

but I am over my head in extracting just the number. I guess awk is the tool, 
but the man page is not very illustrative and I do not have time/patience to 
learn to program in 'awk language' in order to do this thing. And C would 
probably be an overkill... :-)

Help?

And when I'm at it, are there good bash scripting tutorials online out there 
(which hopefully include these types of things)? What can you recommend? The 
bash man page is begging for (a lot of) examples, and google found several of 
them, but I'm not satisfied with depth/clarity/correctness/shortness of them. 
Maybe I am too picky, but I guess there must be something good enough... :-)

Best regards, :-)
Marko




More information about the fedora-list mailing list