Integer 从脚本的ping命令获取整数值

Integer 从脚本的ping命令获取整数值,integer,ping,Integer,Ping,当我运行ping-c1-qipaddress | awk-F”/“{print$6}”时 我得到一个值0.123($MAXTIME用于该ping) 但当我尝试使用它(作为整数值)时,它失败了,原因如下: #!/bin/bash MAXTIME=`ping -c 1 -q 172.200.201.18 | awk -F"/" '{print $6}' | xargs` if [ $MAXTIME > 0.4 ] then echo "ALERT ALERT ALERT - Slow

当我运行
ping-c1-qipaddress | awk-F”/“{print$6}”时
我得到一个值
0.123
$MAXTIME
用于该ping)

但当我尝试使用它(作为整数值)时,它失败了,原因如下:

#!/bin/bash

MAXTIME=`ping -c 1 -q 172.200.201.18 | awk -F"/" '{print $6}' | xargs`

if [ $MAXTIME > 0.4 ]
then 
  echo "ALERT ALERT ALERT - Slow time"
  echo "Actual max time $MAXTIME is greater than 0.400 ms"
  echo "Napping..."                
  sleep 10
else
  echo "Fast ping - OK"
  echo "Napping..."                
  sleep 10
fi
我在输出上得到一个“错误”:

ALERT ALERT ALERT - Slow time
Actual max time 0.193 is greater than 0.400 ms
Napping...
如果我将语句更改为
[$MAXTIME>0.1]

ALERT ALERT ALERT - Slow time
Actual max time 0.258 is greater than 0.100 ms
Napping...
ALERT ALERT ALERT - Slow time
Actual max time 0.324 is greater than 1.000 ms
Napping...
如果我将语句更改为
[$MAXTIME>1]

ALERT ALERT ALERT - Slow time
Actual max time 0.258 is greater than 0.100 ms
Napping...
ALERT ALERT ALERT - Slow time
Actual max time 0.324 is greater than 1.000 ms
Napping...

逻辑似乎有问题(因为它总是返回true),可能
$MAXTIME
不是一个数值?如何使其成为if/then语句中使用的数值?

在代码中,语句
被解释为重定向。因此,如果您查看目录,您会发现空文件的文件名为:
0.4
0.1
1
,这是由于您的问题测试所致

对于浮点值(您的案例)
信息:双引号
防止在
$MAXTIME
中出现空格或任何其他特殊字符。例如,如果您的脚本在计算机上使用另一版本的
ping
,但其行为方式不同,则可能会发生这种情况。

在您的代码中,语句
被解释为重定向。因此,如果您查看目录,您会发现空文件的文件名为:
0.4
0.1
1
,这是由于您的问题测试所致

对于浮点值(您的案例)
信息:双引号
防止在
$MAXTIME
中出现空格或任何其他特殊字符。例如,如果您的脚本在计算机上使用另一版本的
ping
,则可能会发生这种情况。

谢谢,就是这样。注意,这会将布尔值输出到stdout,因此我添加了:if expr“$MAXTIME”>'0.4>/dev/nullYes@user1183817 perfect:
if expr“$MAXTIME”’谢谢,就这样。注意,这会将布尔值输出到stdout,因此我添加了:if expr“$MAXTIME”>'0.4>/dev/nullYes@user1183817 perfect:
if expr“$MAXTIME”'