Since version 2, bash support a single aritmethic operations. Altough bash is not a mathematical shell (use bc instead), you can perform certain conversions using the bash arithmetic logic.
For example you can remove the left zeroes in a decimal number without require any external utility or print formats, let’s suppose that you want to strip zeroes from the number 007, which is stored in bond variable.
$ echo $bond 007 $ let nozeros=10#$bond $ echo $nozeros 7
In many forums and mailing list, people need to use ugly sed expressions, or awk invokation, but (with bash) it’s just simply
Using the same trick, you can perform a base conversions, for example:
$ let i=0x10 $ echo $i 16 $ let i=2#10000 $ echo $i 16
Or create an easy number checking:
$ is_decimal () { let i=10#$1 2>/dev/null; }
$ is_decimal 'a' || echo Nop
Nop
$ is_decimal 56 && echo 'Yep'
Yep
Enjoy!