我写了一个bash脚本,因为我有一个值,当我使用$(( Value=09 ))时,出现了一个错误:
09:值对于base来说太大(错误标记为"09")
然后我创建了一个新的bash文件,只有这一行:
$((09))这又一次出错了。我改变了这个程序的方式,但我仍然有一个问题:为什么?怎么了?只有08和09有这个问题。
发布于 2012-02-01 22:56:37
您可以在bash中指定基数。要强制基数为10:
Value=09
echo $((10#$Value * 2)) # ==> 18从bash manual
前导为0的
常量被解释为八进制数。前导“0x”或“0x”表示十六进制。否则,数字采用base#n的形式,其中base是2到64之间的十进制数,表示算术基数,n是该基数中的数字。如果省略base#,则使用基数10。
发布于 2012-02-01 20:33:29
09被解释为octal。如果需要十进制数,请使用9。
发布于 2012-02-01 20:34:57
前导零表示:以八进制(以8为基数)解释数字的其余部分。这只允许数字0-7,因此9无效。
还有表示十六进制(以16为基数)的0x,因此echo $((0xFF))打印255。
https://stackoverflow.com/questions/9095861
复制相似问题