下午好,
我玩弄 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" ]