strNumber="42"
#bash has no number types: arithmetic just reads the string
number=$((strNumber))
#number is 42
#a string that is not a number gives an error inside $(( )),
#so check it with a pattern first
strMixed="42abc"
if [[ $strMixed =~ ^-?[0-9]+$ ]]; then
parsed=$((strMixed))
else
parsed=0
fi
#parsed is 0
#a leading zero means octal: 10# forces base 10
strZero="08"
fromZero=$((10#$strZero))
#fromZero is 8
echo "number is $number"
echo "parsed is $parsed"
echo "fromZero is $fromZero"