从字符串转换

基本类型 / 数字 / 整型

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"