在ubuntu16中((a+=10))没有用
来源:3-8 if-then中使用双括号
仰望丶Kun
2019-11-29
#!/bin/bash
a=10
((a+10))
echo $a
$ sh double_bracket.sh
double_bracket.sh: 3: double_bracket.sh: a+10: not found
10
在命令行中就可以运行
~$ a=10
~$ ((a+=10))
~$ echo $a
写回答
1回答
-
Ubuntu中默认不是bash,而是使用了dash。dash中需要严格的语法,而且与bash语法不同。例如,bash中定义函数是使用function关键字的(function test() {}),但在ubuntu中使用的dash中没有该关键字,因此如果定义函数仍然使用function test() { }会报错,上面你得问题也是这样的
回答你得问题,在脚本中你使用了#!/bin/bash,这时候执行的时候你不应该使用sh 取执行,而是给你得文件增加可执行权限,再执行。这样操作,例如你得脚本是1.sh,使用chmod +x 1.sh给脚本加权限,然后./1.sh执行即可
建议做实验时使用CentOS或者RedHat,因为在企业中都会用这2种Linux系统,而且学习也会少走很多弯路。
可以尝试按上面方法修改,如果还不行再来告诉我哦
022019-11-29
相似问题