You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Joachim Ansorg edited this page Nov 12, 2021
·
2 revisions
In POSIX sh, ++ is undefined.
(or "In dash, ... is not supported." when using dash)
Problematic code:
#!/bin/sh
i=1
echo"$((i++))"
Correct code:
Write out the increment/decrement operation explicitly:
#!/bin/sh
i=1
echo"$i"
i=$((i+1))
Rationale:
Prefix and postfix increment and decrement are extensions in bash and ksh. They're not supported in dash or POSIX sh, which is what your shebang says you're using.
Exceptions:
If you only intend to target shells that supports this feature, you can change
the shebang to a shell that guarantees support, or ignore this warning.
You can use # shellcheck disable=SC3000-SC4000 to ignore all such compatibility
warnings.
Related resources:
Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!