2017-02-22 5 views
0

以下のコードで、私は次のようになります。 9行目:[:8.8.8.8:整数式が期待されます わからないのはなぜですか?Bashスクリプト - 整数式が期待されます

#!/bin/bash 
sourceFile="file.log" 
targetFile="2file.log" 
ping="8.8.8.8" 
while IFS='' read -r line || [[ -n "$line" ]]; do 
echo "$line" >> "$targetFile" 
sudo service networking restart 
ping -q -c 5 "$ping" 
if [ "$ping" -ne 0 ]; then 
    sed -n -e 8p "$2file.log" 
fi 
done < "$sourceFile" 
+1

であなたのpingコマンドの終了コードを取得することができ、あなたをチェック0(ゼロ)に対するテスト – grail

+1

'$ ping'の値ではなく、前のコマンドの*終了ステータス*を0でチェックしたいと思われます:' [$? -ne 0];次に 'それ以上の場合は'直接! ping -q -c 5 "$ ping";それから。 – chepner

答えて

0

あなたが "8.8.8.8" を比較しようとしているので0に(文字列)(整数)

ping="8.8.8.8" 
if [ "$ping" -ne 0 ]; then 

ピング変数が文字列です。あなたは(0

整数値に文字列値(0​​)を比較している

0

あなたは$?

ping="8.8.8.8" 

ping -q -c 5 "$ping" 

ping=$? 

if [ $ping -ne 0 ]; then 
    echo "NOTOK" 
else 
    echo "OK" 
fi 

チェックthis post

+0

または 'ping -q -c 5" $ ping ";エコー "OK";そうでなければecho "NOTOK"; fi' –

関連する問題