【问题标题】:How to place the output of an echo statement and an arp statement on one line?如何将 echo 语句和 arp 语句的输出放在一行?
【发布时间】:2015-08-30 02:17:34
【问题描述】:

如何在一行中获得输出“echo”和“macaddress”? 这就是我所拥有的:

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 

【问题讨论】:

  • 提供所需的示例输出/代码
  • @Jahid deze host met mac address en ip address is up e0:b9:a5:f8:24:c3 192.168.0.149
  • @Jahid 或者如果有可能“de 主机遇到 mac 地址:e0:b9:a5:f8:24:c3 en ip address: 192.168.0.149 is up”
  • echo "de host met mac address: $macaddress en ip address: $ipRange$1 is up" 同时将macaddress=... 更改为macaddress=$(command)
  • @Jahid 好的,谢谢!

标签: linux bash shell output


【解决方案1】:

这应该是单行输出

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

【讨论】:

  • fgrep 替换grep -w 可能是个好主意。试试这个:echo 1.2.3.4 | grep -qw 1.2.3. || echo nope
【解决方案2】:

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

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

【讨论】:

  • fgrep 替换grep -w 可能是个好主意。试试这个:echo 1.2.3.4 | grep -qw 1.2.3. || echo nope
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-30
  • 1970-01-01
相关资源
最近更新 更多