如果语句没有抓住,则猛击

  • 本文关键字:语句 如果 bash awk
  • 更新时间 :
  • 英文 :


下午好,

我玩弄 bash,想编写一个脚本来执行跟踪路由并检查第二个跃点是否是特定的 IP 地址。 以下是我的脚本:

Failover_check= traceroute 8.8.8.8 -n | grep 192.168.0.2 | awk '{print  $2;}'
if [ $Failover_check = "192.168.0.2" ]
then
    echo "ip found"
else
    echo "ip not ound"
fi

每次我运行脚本时,它总是命中 else 语句

谢谢

使用 $(...) 将其分配给变量,并确保前后没有空格=必须避免拆分并提供正确的结果

Failover_check=$(traceroute 8.8.8.8 -n | grep 192.168.0.2 | awk '{print  $2;}')

因为命令的输出没有分配给Failover_check变量。用:

Failover_check=$(traceroute 8.8.8.8 -n | grep 192.168.0.2 | awk '{print  $2;}')

另外,您可以考虑引用变量;以避免变量为空时出错:

if [ "$Failover_check" = "192.168.0.2" ]

相关内容

  • 没有找到相关文章

最新更新