Сегодня я пытался сравнить два значения и был удивлен увиденным. Я нигде не нашел ни одного хорошего предложения. Может ли кто-нибудь помочь?
if [ 10.94 -gt 10 ]
then
echo True
else
echo False
fi
Я удивлен, что здесь результат — Ложь.
Затем я попробовал следующее.
if [[ 10.94 > 10 ]]
Результат оказался верным. Меня это устроило.
И снова мой скрипт дал ошибку при определенном условии, как показано ниже.
if [[ 5.15 > 10 ]]
echo True
fi
Здесь результат оказался истинным.
Как так? Есть ли какая-то лучшая идея, которая будет сравнивать десятичные значения правильным образом?
решение1
echo | awk '{if (10.1 > 10.0) {print "True"} else {print "False"} }'
True
if [ $(echo "10.12 < 10.13"|bc -l) -eq 1 ];then echo "True"; else echo "False"; fi
True