2016-03-23 15 views
0

私は自分のコンピュータ上のインターネット接続をチェックするために書いている小さなbashスクリプトを持っており、時間の経過と共に変化する2つのブール変数を含んでいます。私の質問は...どのように私は2つを比較するのですか?ブール変数を比較してインターネット接続を確認する

私が持っているコードは(私は思った)かなりまっすぐですが、それは私には、私が正しいと知っている "インターネットOFF"を絶えず与えています。

私はLinux端末でテストしましたが、ブール値の比較が正しくないとわかりました。私はそれを理解できないようです。

注:私がif/thenステートメントを拡張すると、プログラムを動作させることができます。以下のように動作させる方法を知りたいだけです。私はブール変数の比較がこのように動作しない理由を理解していません。

ありがとうございました!

CODE:

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; 

答えて

0
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 
+0

おかげでアリISSA! – AmericanMade

関連する問題