SC2100 – ShellCheck Wiki

See this page on GitHub

Sitemap


Use $((..)) for arithmetics, e.g. i=$((i + 2))

Problematic code:

i=3
i=i+2

Correct code:

i=3
i=$((i + 2))

Rationale:

Unlike most languages, variable assignments (almost) always assigns strings and not expressions. In the example code, i will become the string i+2 instead of the intended 5.

To instead evaluate a mathematical expressions, use $((..)) as in the correct code.

Exceptions:

If you wanted to assign a literal string, quote it:

description="friendly-looking"

ShellCheck (as of v0.5) doesn't recognize Bash/Ksh numeric variables created with declare -i where this syntax is valid. Using $((..)) still works, but you can also ignore this warning.


ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.