6 SC2072
Joachim Ansorg edited this page 2021-11-12 19:28:34 +01:00

Decimals are not supported. Either use integers only, or use bc or awk to compare.

Problematic code:

[[ 2 -lt 3.14 ]]

Correct code:

[[ 200 -lt 314 ]]                   # Use fixed point math
[[ $(echo "2 < 3.14" | bc) == 1 ]]  # Use bc

Rationale:

Bash and Posix sh does not support decimals in numbers. Decimals should either be avoided, or compared using a tool that does support them.

Exceptions

If the strings happen to be version numbers and you're using <, or > to compare them as strings, and you consider this an acceptable thing to do, then you can ignore this warning.