2015-06-14 78 views
3

如何在一行上获得输出“echo”和“macaddress”? 这是我有:如何在一行放置echo语句和arp语句的输出?

ipRange="192.168.0." 
macaddress= arp | grep -w "$ipRange$1" | awk '{print $3,$1}' 

ping -c1 "$ipRange$1" > /dev/null 
     if [ $? -eq 0 ]; then 
echo "deze host met mac address en ip address is up $macaddress" 
else 
echo "het is down" 
fi 

这是输出:

VirtualBox ~ $ bash test2.sh 149 
e0:b9:a5:f8:24:c3 192.168.0.149 
deze host met mac address en ip address is up 
+0

提供所需的样本输出/代码 – Jahid

+0

@Jahid deze主机遇到mac地址en ip地址是up e0:b9:a5:f8:24:c3 192.168.0.149 –

+0

@Jahid或者如果有可能“de host met mac address: e0:b9:a5:f8:24:c3 en ip address:192.168.0.149 is up“ –

回答

1

只需更换macaddress= arp | grep -w "$ipRange$1" | awk '{print $3,$1}'

macaddress=$(arp | grep -w "$ipRange$1" | awk '{print $3,$1}')

+0

谢谢你的工作 –

+0

用'fgrep'替换'grep -w'也可能是个好主意。试试这个:'echo 1.2.3.4 | grep -qw 1.2.3。 || echo nope' – lcd047

2

本应该做的输出单行

ipRange="192.168.0." 
macaddress=$(arp | grep -w "$ipRange$1" | awk '{print $3,$1}') 

ping -c1 "$ipRange$1" > /dev/null 
     if [ $? -eq 0 ]; then 
echo "deze host met mac address en ip address is up $macaddress" 
else 
echo "het is down" 
fi 
+0

将'grep -w'替换为'fgrep'也是一个好主意。试试这个:'echo 1.2.3.4 | grep -qw 1.2.3。 ||回声nope' – lcd047