Ao contrário, por exemplo, de python, bc
não suporta comparações encadeadas:
a < b < c
Para realizar as duas comparações e exigir que ambas sejam verdadeiras, use lógico-e (requer GNU bc):
(a < b) && (b < c)
Por exemplo:
$ a=104.9; b=136; c=136.9; if echo "($a < $b) && ($b < $c)" | bc -l | grep -q 1; then echo True; else echo False; fi
True
$ a=104.9; b=137; c=136.9; if echo "($a < $b) && ($b < $c)" | bc -l | grep -q 1; then echo True; else echo False; fi
False
POSIX bc
Se você não tem o GNU bc, você pode substituir a lógica e com a multiplicação:
$ a=104.9; b=136; c=136.9; if echo "($a < $b)*($b < $c)" | bc -l | grep -q 1; then echo True; else echo False; fi
True
$ a=104.9; b=137; c=136.9; if echo "($a < $b)*($b < $c)" | bc -l | grep -q 1; then echo True; else echo False; fi
False