-
Notifications
You must be signed in to change notification settings - Fork 1.8k
SC2100
Vidar Holen edited this page Jun 28, 2018
·
1 revision
i=3
i=i+2
i=3
i=$((i + 2))
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.
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.
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!