为什么bash认为010是8?
为什么bash认为数字010 = 8?
x=010 echo $x 010 echo $(( x+0 )) 8 echo $(( x-2 )) 6
我认为它可能是二进制的,但010 = 10 = 2.那么为什么它会得到8,我怎么能让它认为010 = 10(和010-2 = 8)?
以0
开头的数字序列被解释为八进制数。
八进制10
=十进制8
。
要使bash将其视为十进制数,请删除前导零或强制小数:
N=010 N=$((10#$N))
通常适用于所有基础,只需将10
替换为您想要的基础:
N=[base#]n