-
Notifications
You must be signed in to change notification settings - Fork 1.8k
SC1106
Vidar Holen edited this page Apr 9, 2021
·
1 revision
Similarly, >
instead of -gt
, <=
instead of -le
, >=
instead of -ge
, ==
instead of -eq
, !=
instead of -ne
.
if (( 2 -lt 3 ))
then
echo "True"
fi
if (( 2 < 3 ))
then
echo "True"
fi
The 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))
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!