免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7709 | 回复: 6
打印 上一主题 下一主题

syntax error: you disabled math support for $((arith)) syntax [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-20 16:43 |只看该作者 |倒序浏览
大家好,我用busybox编译的一个根文件系统,
我有一个脚本里面有一行代码如下

  1. LINECOUNT=$(($LINECOUNT+1))
复制代码


我执行这个脚本的时候提示
syntax error: you disabled math support for $((arith)) syntax
错误。

busybox编译的时候,我选择的是ash。

不知道上述错误是如何产生的,该如何解决呢?谢谢

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2009-07-20 16:54 |只看该作者
也许你的shell不支持$(())这种结构,还是用let吧

论坛徽章:
0
3 [报告]
发表于 2009-07-20 16:58 |只看该作者
看提示是“你关闭了$(())格式的数学计算支持”,可以再打开?

论坛徽章:
0
4 [报告]
发表于 2009-07-20 16:59 |只看该作者
我可以肯定shell是支持的,应该是在我配置busybox选项的时候,或是什么问题造成的

论坛徽章:
0
5 [报告]
发表于 2009-07-20 16:59 |只看该作者
原帖由 ywlscpl 于 2009-7-20 16:58 发表
看提示是“你关闭了$(())格式的数学计算支持”,可以再打开?


如何打开?

论坛徽章:
0
6 [报告]
发表于 2009-07-20 17:08 |只看该作者

回复 #5 cltnet 的帖子

ash
对于数字操作只能使用expr,不能使用let,也不能使用(())双括号

LINECOUNT=$(($LINECOUNT+1))改为:

LINECOUNT=`expr $LINECOUNT+1`

论坛徽章:
0
7 [报告]
发表于 2009-07-20 17:18 |只看该作者
原帖由 chenwenming_zj 于 2009-7-20 17:08 发表
ash
对于数字操作只能使用expr,不能使用let,也不能使用(())双括号

LINECOUNT=$(($LINECOUNT+1))改为:

LINECOUNT=`expr $LINECOUNT+1`



我现在使用的解决方法就是
LINECOUNT=`expr $LINECOUNT + 1`

谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP