Skip to content
Vidar Holen edited this page Oct 20, 2022 · 1 revision

Trying to do math? Use e.g. [ $((i/2+7)) -ge 18 ].

Problematic code:

[ i / 2 + 7 -ge 18 ]

Correct code:

[ $((i / 2 + 7)) -ge 18 ]

Rationale:

ShellCheck found a loose +*/% in a test statement. This usually happens when trying to do arithmetic in a condition, but without using the arithmetic expansion construct $((expression)).

In C, if (a+b == c) is perfectly fine, but in sh this must be written to first expand the arithmetic operation like if [ $((a+b)) = c ].

Exceptions:

None.

Related resources:

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!

ShellCheck

Each individual ShellCheck warning has its own wiki page like S001. Use GitHub "Pages" feature above to find a specific one, or see Checks.

Clone this wiki locally