Это не отвечает на весь ваш вопрос, но обратите внимание, что bash не может выполнять какие-либо арифметические операции с плавающей запятой:
$ if [ 1234 -ge 1115.1 -a 1234 -le 1858.5 ]; then echo ok; else echo nope; fi
bash: [: 1115.1: integer expression expected
nope
Сравнения можно поручить bc:
check() {
local result=$(echo "0.9*$2 <= $1 && $1 <= 1.5*$2" | bc)
(( result == 1 )) && echo OK || echo NO
}
check 1234 1239 # => OK
check 1234 12390 # => NO