下午好,
我正在玩bash并想编写一个脚本来执行traceroute并检查第二跳是否是特定的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语句
由于
答案 0 :(得分:3)
使用$(...)将其分配给变量,并确保=
之前和之后没有空格必须避免拆分并提供正确的结果
Failover_check=$(traceroute 8.8.8.8 -n | grep 192.168.0.2 | awk '{print $2;}')
答案 1 :(得分: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" ]