-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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"
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))
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!