Parameters passed to commands but not working in Bash shell


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parameters passed to commands but not working in Bash shell
# 1  
Old 12-07-2009
Parameters passed to commands but not working in Bash shell

Hi, I am trying to do this thing useing my shell bash ( sorry for my english )

I have in a file 63 hostnames, i wanna ask to the DHCP admin, to reserv that reserves 63 IP addresses of this hosts, using their mac address.

I have thinked this script:

Code:
for ((i=1;i<63;i++)); do
	arp $(head -n $i host.txt |tail -n 1) | awk '/Cyp/ {$1 $3}' > host_mac.txt
	
done;

This are my trys:

Code:
Cypuysrv456:~# head -n 1 host.txt |tail -n 1
CypUYNB106


Cypuysrv456:~# ping  $(head -n 1 host.txt |tail -n 1)
ping: unknown host CypUYNB106


Cypuysrv456:~# ping CypUYNB106
PING CypUYNB106.hh.Cyp.com (172.Z.X.Y) 56(84) bytes of data.
64 bytes from Cypuynb106.hh.Cyp.com (172.Z.X.Y): icmp_seq=1 ttl=128 time=0.333 ms
64 bytes from Cypuynb074.hh.Cyp.com (172.Z.X.Y): icmp_seq=2 ttl=128 time=0.276 ms
^C
--- CypUYNB106.hh.Cyp.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.276/0.304/0.333/0.033 ms


Cypuysrv456:~#

I'll explain:

Code:
Cypuysrv456:~# head -n 1 host.txt |tail -n 1
CypUYNB106

I get the names of the file and the system returns one by one the hostnames


Code:
Cypuysrv456:~# ping  $(head -n 1 host.txt |tail -n 1)
ping: unknown host CypUYNB106

Dam! it does not recognize the host, maybe the system it can not resolve the hostname.

Code:
Cypuysrv456:~# ping CypUYNB106
PING CypUYNB106.hh.Cyp.com (172.Z.X.Y) 56(84) bytes of data.
64 bytes from Cypuynb106.hh.Cyp.com (172.Z.X.Y): icmp_seq=1 ttl=128 time=0.333 ms
64 bytes from Cypuynb074.hh.Cyp.com (172.Z.X.Y): icmp_seq=2 ttl=128 time=0.276 ms
^C
--- CypUYNB106.hh.Cyp.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.276/0.304/0.333/0.033 ms

Smilie he could resolve it. :S

¿ Why not before ?

I change in the file, the hostname with the completely hostname, but no fortune.

CypUYNB106.hh.Cyp.com

Since some days ago i have joined this machine to the domain ( active directory ) this is a gnu/linux server.

¿ Any idea why the system coud not resolve the name ?

Code:
# cat /etc/resolv.conf
domain hh.Cyp.com
search hh.Cyp.com
nameserver 172.Z.X.F
nameserver 172.Z.W.R

Regards,
# 2  
Old 12-07-2009
what is the o/p of :-

Code:
cat hosts.txt.

# 3  
Old 12-07-2009
hosts.txt it's the file where there is the 63 hostnames

Code:
# cat host.txt

CypUYNB106
CypUYNB144
CypUYNB150
CypUYNB151
CypUYNB152
CypUYWT1124
CypUYWT1126
CypUYWT1133
CypUYWT1135
CypUYWT1142
CypUYWT1152

And more hostnames
# 4  
Old 12-07-2009
Try one of the below:-

Code:
for ((i=1;i<63;i++)) ; do
cat <(head -n $i host.txt | tail -n 1) | xargs -n 1 -x arp
done

Code:
for ((i=1;i<63;i++)) ; do
echo $(head -n $i host.txt  | tail -n 1) | xargs -n 1 -x arp 
done


SmilieSmilieSmilie
# 5  
Old 12-07-2009
Mmm.. not working,

It can not resolve the hostname:

Code:
xargs: arp: exited with status 255; aborting
: Unknown host

I put ping in sted of arp, anyway after a ping i can consult arp -a
and no lucky
Code:
Cypuysrv456:~# for ((i=1;i<63;i++)) ; do echo $(head -n $i host.txt  | tail -n 1) | xargs  ping -c 1 ; done
ping: unknown host CypUYWT857
Cypuysrv456:~# ping CypUYWT857
PING CypUYWT857.hh.Cyp.com (172.X.Y.Z) 56(84) bytes of data.
64 bytes from Cypuywt857.hh.Cyp.com (172.X.Y.Z): icmp_seq=1 ttl=128 time=2.31 ms
64 bytes from Cypuywt857.hh.Cyp.com (172.X.Y.Z): icmp_seq=2 ttl=128 time=0.211 ms
^C
--- CypUYWT857.hh.Cyp.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1005ms
rtt min/avg/max/mdev = 0.211/1.264/2.317/1.053 ms
Cypuysrv456:~#

:S
dazed and confused Smilie
# 6  
Old 12-07-2009
Quote:
Originally Posted by Cypress
Mmm.. not working,

It can not resolve the hostname:

Code:
xargs: arp: exited with status 255; aborting
: Unknown host

I put ping in sted of arp, anyway after a ping i can consult arp -a
and no lucky
Code:
Cypuysrv456:~# for ((i=1;i<63;i++)) ; do echo $(head -n $i host.txt  | tail -n 1) | xargs  ping -c 1 ; done
ping: unknown host CypUYWT857
Cypuysrv456:~# ping CypUYWT857
PING CypUYWT857.hh.Cyp.com (172.X.Y.Z) 56(84) bytes of data.
64 bytes from Cypuywt857.hh.Cyp.com (172.X.Y.Z): icmp_seq=1 ttl=128 time=2.31 ms
64 bytes from Cypuywt857.hh.Cyp.com (172.X.Y.Z): icmp_seq=2 ttl=128 time=0.211 ms
^C
--- CypUYWT857.hh.Cyp.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1005ms
rtt min/avg/max/mdev = 0.211/1.264/2.317/1.053 ms
Cypuysrv456:~#

:S
dazed and confused Smilie
this is not the code I wrote to you
Code:
for ((i=1;i<63;i++)) ; do echo $(head -n $i host.txt  | tail -n 1) | xargs  ping -c 1 ; done

what is your OS?
# 7  
Old 12-07-2009
Quote:
Originally Posted by ahmad.diab
this is not the code I wrote to you
Code:
for ((i=1;i<63;i++)) ; do echo $(head -n $i host.txt  | tail -n 1) | xargs  ping -c 1 ; done

what is your OS?
I know, the code you wrote, gave me
Code:
xargs: arp: exited with status 255; aborting
: Unknown host

Then i change it, just to know if were arp's problem. but the problem it's at the time it is queried.. ( if it's queried :S ) the DNS maybe.. when it's executed the command..


My OS is:

Debian Lenny
Code:
Cypuysrv456:~# uname -a
Linux Cypuysrv456 2.6.26-1-686 #1 SMP Fri Mar 13 18:08:45 UTC 2009 i686 GNU/Linux

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Shell script to create runtime variables based on the number of parameters passed in the script

Hi All, I have a script which intends to create as many variables at runtime, as the number of parameters passed to it. The script needs to save these parameter values in the variables created and print them abc.sh ---------- export Numbr_Parms=$# export a=1 while do export... (3 Replies)
Discussion started by: dev.devil.1983
3 Replies

2. Shell Programming and Scripting

Three parameters passed from a script to other at different time

nothing (0 Replies)
Discussion started by: shikha84
0 Replies

3. UNIX for Dummies Questions & Answers

Trouble displaying parameters passed into a for loop

#!/bin/bash function check_num_args() { if ; then echo "Please provide a file name" else treat_as_file $* fi } function treat_as_file() { numFiles=$# for((i=1;i<=$numFiles;i++));do echo $i ... (3 Replies)
Discussion started by: kikilahooch
3 Replies

4. Shell Programming and Scripting

How to check that passed parameters all have the same extension?

$ ls monkey.txt banana.csv tree.txt $ myscript monkey.txt tree.txt All extensions ARE alike. $ myscript *txt All extensions ARE alike. $ myscript monkey.txt banana.csv All extensions are NOT alike. $ myscript * All extensions are NOT alike. My brain has given up; what's the simplest... (11 Replies)
Discussion started by: cs03dmj
11 Replies

5. Shell Programming and Scripting

Can BASH execute commands on a remote server when the commands are embedded in shell

I want to log into a remote server transfer over a new config and then backup the existing config, replace with the new config. I am not sure if I can do this with BASH scripting. I have set up password less login by adding my public key to authorized_keys file, it works. I am a little... (1 Reply)
Discussion started by: bash_in_my_head
1 Replies

6. UNIX for Dummies Questions & Answers

ksh: verifying number of parameters passed

hi all, i have a ksh script that takes up to 3 parameters -- only 2 of which are required. what's the simplest way to check if the user passed 2 or 3 parameters? if 3 parameters are not null then do this elif 2 parameters are not null then do this else echo "you need at least 2... (5 Replies)
Discussion started by: ankimo
5 Replies

7. Shell Programming and Scripting

Problem with script not able to take parameters passed to it

debug output: (3 Replies)
Discussion started by: dsravan
3 Replies

8. Shell Programming and Scripting

Problem with script not able to take parameters passed to it

when I pass any 2 parameters it always says: Number of parameters passed: 1 and the job_name as x Can some body help? (7 Replies)
Discussion started by: dsravan
7 Replies

9. Shell Programming and Scripting

Extracting passed in parameters

we want to produce a script that we can pass parameters of -a for email address and -s for subject then the report filename, so an exmaple would be; email_report -a sendto@domain.com -s This is a test reportname.txt The problem we have is the subject can have more than one word, so I can't just... (2 Replies)
Discussion started by: spookyrtd99
2 Replies

10. UNIX for Dummies Questions & Answers

Assigning a Variable all the Parameters passed

Hi, I have a unix script which can accept n number of parameters . I can get the parameter count using the following command and assign it to a variable file_count=$# Is there a similar command through which i can assign a variable all the values that i have passed as a parameter ... (2 Replies)
Discussion started by: samit_9999
2 Replies
Login or Register to Ask a Question