오늘 저는 두 가지 가치를 비교하려고 하다가 제가 본 것에 놀랐습니다. 어디에서도 좋은 제안을 찾지 못했습니다. 누구든지 도와 주시겠습니까?
if [ 10.94 -gt 10 ]
then
echo True
else
echo False
fi
여기서 결과가 False라는 것에 놀랐습니다.
그런 다음 다음을 시도했습니다.
if [[ 10.94 > 10 ]]
결과는 True로 나왔습니다. 나는 괜찮았다.
이번에도 내 스크립트는 아래와 같은 특정 조건에서 결함을 발생시켰습니다.
if [[ 5.15 > 10 ]]
echo True
fi
결과는 True였습니다.
왜요? 소수 값을 적절한 방식으로 비교하는 더 좋은 아이디어가 있습니까?
답변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