< instead of -ltSimilarly, > instead of -gt,
<= instead of -le, >=
instead of -ge, == instead of
-eq, != instead of -ne.
if (( 2 -lt 3 ))
then
echo "True"
fiif (( 2 < 3 ))
then
echo "True"
fiThe comparators -lt, -ge, -eq
and friends are flags for the test command aka
[. You are instead using it in an arithmetic context, such
as (( .. )) or $(( .. )), where you should be
using <, >=, == etc
instead.
In arithmetic contexts, -lt is simply interpreted as
"subtract the value of $lt", which is clearly not the
intention.
If you do want to subtract $lt you can add a space to
make this clear to ShellCheck: echo $((3 - lt))
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.