The + is a unary operator, not part of the literal. Write $((+10#0034)) instead.
-- Clint On Jul 9, 2018, 9:24 PM -0400, Isaac Marcos <isaacmarcos100...@gmail.com>, wrote: > Configuration Information [Automatically generated, do not change]: > Machine: x86_64 > OS: linux-gnu > Compiler: gcc > Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64' > -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pc-linux-gnu' > -DCONF_VENDOR > uname output: Linux IO 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 > (2018-05-07) x86_64 GNU/Linux > Machine Type: x86_64-pc-linux-gnu > > Bash Version: 4.4 > Patch Level: 12 > Release Status: release > > Description: > A value inside an arithmetic expansion is processed as octal despite using > a 10# preffix. > > Repeat-By: > $ echo $((10#+0034)) > 28 > > Fix: > Extract optional sign before parsing the number, re-attach after. > > -- > Cases are always threesome: > Best case, Worst case, and Just in case