Skip to content
koalaman edited this page Sep 9, 2017 · 1 revision

Instead of let expr, prefer (( expr )) .

Problematic code:

let a++

Correct code:

(( a++ ))

Rationale:

The (( .. )) arithmetic compound command evaluates expressions in the same way as let, except it's not subject to glob expansion and therefore requires no additional quoting or escaping.

This warning only triggers in Bash/Ksh scripts. In Sh/Dash, neither let nor (( .. )) are defined, but can be simulated with [ $(( expr )) -ne 0 ] to retain exit code, or : $(( expr )) to ignore it.

Exceptions:

None.

More information

ShellCheck

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

Clone this wiki locally
You can’t perform that action at this time.