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
Jari Aalto edited this page Jan 29, 2025
·
4 revisions
Instead of let expr, prefer (( expr )) .
Problematic code:
let a++
Correct code:
(( a++))||true
Note, || true bits ignore error status code when incrementing from 0 to 1
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. For portability, the $(( expr )) syntax is defined in POSIX standard.