首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux bash文件无法理解$((09))

linux bash文件无法理解$((09))
EN

Stack Overflow用户
提问于 2012-02-01 20:31:55
回答 4查看 639关注 0票数 1

我写了一个bash脚本,因为我有一个值,当我使用$(( Value=09 ))时,出现了一个错误:

09:值对于base来说太大(错误标记为"09")

然后我创建了一个新的bash文件,只有这一行:

代码语言:javascript
复制
$((09))

这又一次出错了。我改变了这个程序的方式,但我仍然有一个问题:为什么?怎么了?只有08和09有这个问题。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-01 22:56:37

您可以在bash中指定基数。要强制基数为10:

代码语言:javascript
复制
Value=09
echo $((10#$Value * 2))  # ==> 18

bash manual

前导为0的

常量被解释为八进制数。前导“0x”或“0x”表示十六进制。否则,数字采用base#n的形式,其中base是2到64之间的十进制数,表示算术基数,n是该基数中的数字。如果省略base#,则使用基数10。

票数 1
EN

Stack Overflow用户

发布于 2012-02-01 20:33:29

09被解释为octal。如果需要十进制数,请使用9

票数 5
EN

Stack Overflow用户

发布于 2012-02-01 20:34:57

前导零表示:以八进制(以8为基数)解释数字的其余部分。这只允许数字0-7,因此9无效。

还有表示十六进制(以16为基数)的0x,因此echo $((0xFF))打印255。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9095861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档