Bash脚本 - 期望的整数表达式

时间:2017-02-22 15:46:54

标签: bash

使用以下代码,我会继续: 第9行:[:8.8.8.8:预期的整数表达式 不确定为什么?

#!/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"

2 个答案:

答案 0 :(得分:0)

因为你试图比较&#34; 8.8.8.8&#34; (字符串)为0(整数)

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

ping变量是字符串。

答案 1 :(得分:0)

您正在将字符串值("8.8.8.8")与整数值(0)进行比较

您可以使用ping

检索$?命令的退出代码
ping="8.8.8.8"

ping -q -c 5 "$ping"

ping=$?

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

检查this post