comparar valores de coma decimal en la declaración if

comparar valores de coma decimal en la declaración if

Hoy estaba tratando de comparar dos valores y me sorprendió lo que vi. No encontré ninguna buena sugerencia en ninguna parte. ¿Alguien podría ayudarme?

if [ 10.94 -gt 10 ]
then
  echo True
else
  echo False
fi

Me sorprende que el resultado sea falso.

Luego probé lo siguiente.

if [[ 10.94 > 10 ]]

El resultado fue Verdadero. Estaba bien con eso.

Nuevamente mi script dio un error en una condición particular como la siguiente

if [[ 5.15 > 10 ]]
  echo True
fi

Aquí el resultado fue Verdadero.

¿Cómo? ¿Existe alguna idea mejor que compare los valores decimales de forma adecuada?

Respuesta1

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

información relacionada