SC2080 – ShellCheck Wiki

See this page on GitHub


Numbers with leading 0 are considered octal.

Problematic code:

echo $(( 16 - 08 ))

Correct code:

echo $(( 16 - 8 ))


ShellCheck found an integer literal with a leading zero, but containing the digits 8 or 9.

This is invalid, as the integer will be interpreted as an octal value (e.g. 0777 == 0x1FF == 511).

To have the value parsed in base 10, either remove the leading zeros as in the example, or specify the radix explicitly:

echo $((10#08)) 



The BASH manual "Shell Arithmetic" chapter

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