Когда я запускаю ping -c 1 -q ipaddress | awk -F"/" '{print $6}'
, я получаю значение 0.123
($MAXTIME
для этого пинга)
Но когда я пытаюсь использовать его (как целочисленное значение), происходит сбой с этими:
#!/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...
Если я изменю операторна [ $MAXTIME > 1 ]
:
ALERT ALERT ALERT - Slow time
Actual max time 0.324 is greater than 1.000 ms
Napping...
Похоже, логика неисправна (поскольку она всегда возвращает истину) и, возможно, $MAXTIME
не является числовым значением?Как сделать это числовое значение для использования в операторе if / then?