比较布尔变量以检查互联网连接
Compare boolean variables to check internet connection
我正在编写一个小的 bash 脚本来检查我计算机上的互联网连接,它包含两个随时间变化的布尔变量。我的问题是……如何比较两者?
我的代码(我认为)非常简单,但它不断给我一个 "internet OFF" 我知道这是不正确的。
我已经在 linux 终端上测试过了,我意识到我对布尔值的比较不正确,我就是想不出来。
注意:如果我扩展 if/then 语句,我可以使程序工作...我只是想知道如何使它按照下面的设置方式工作。我不明白为什么布尔变量比较不能这样工作。
感谢您的帮助!
代码:
prevStatus=false;
newStatus=true;
while true;
do
ping -q -c1 www.google.com;
pingStatus=$?;
if (($pingStatus == 0));
then newStatus=true;
else newStatus=false;
fi;
if (($newStatus != $prevStatus)) && (($newStatus == true));
then echo "internet OFF" >> logfile;
else echo "internet ON" >> logfile;
fi;
prevStatus=$newStatus
sleep 60s;
done;
prevStatus=false
newStatus=false
while true
do ping -a www.google.com > /dev/null
pingStatus=$?
prevStatus=$newStatus
if [ $pingStatus == 0 ]
then newStatus=true
else newStatus=false
fi
if [ "$newStatus" != "$prevStatus" ]
then
if [ "$newStatus" == "true" ]
then echo "internet ON" >> logfile
else echo "internet OFF" >> logfile
fi
fi
prevStatus=$newStatus
sleep 60s
done
我正在编写一个小的 bash 脚本来检查我计算机上的互联网连接,它包含两个随时间变化的布尔变量。我的问题是……如何比较两者?
我的代码(我认为)非常简单,但它不断给我一个 "internet OFF" 我知道这是不正确的。
我已经在 linux 终端上测试过了,我意识到我对布尔值的比较不正确,我就是想不出来。
注意:如果我扩展 if/then 语句,我可以使程序工作...我只是想知道如何使它按照下面的设置方式工作。我不明白为什么布尔变量比较不能这样工作。
感谢您的帮助!
代码:
prevStatus=false;
newStatus=true;
while true;
do
ping -q -c1 www.google.com;
pingStatus=$?;
if (($pingStatus == 0));
then newStatus=true;
else newStatus=false;
fi;
if (($newStatus != $prevStatus)) && (($newStatus == true));
then echo "internet OFF" >> logfile;
else echo "internet ON" >> logfile;
fi;
prevStatus=$newStatus
sleep 60s;
done;
prevStatus=false
newStatus=false
while true
do ping -a www.google.com > /dev/null
pingStatus=$?
prevStatus=$newStatus
if [ $pingStatus == 0 ]
then newStatus=true
else newStatus=false
fi
if [ "$newStatus" != "$prevStatus" ]
then
if [ "$newStatus" == "true" ]
then echo "internet ON" >> logfile
else echo "internet OFF" >> logfile
fi
fi
prevStatus=$newStatus
sleep 60s
done