问题:
Ubuntn中执行shell脚本报错Syntax error: “(“ unexpected
分析:
脚本中有数组初始化的内容
$ str=“123 456 789”
$ array=($str)
$ echo ${array[2]}
sh执行脚本会报错 Syntax error: “(” unexpected
原因:
其他常见的linux发行版,虽然很多是将sh指向bash
debian/ubuntu上sh命令默认是指向dash,而不是bash
又因为dash是比bash还轻量的,只支持基本的shell功能,
其中不包括刚才那种数组初始化,所以才会识别不了,直接报Syntx error
解决:
解决办法是,
第一种方案:直接用 bash test.sh,或者./test.sh,这两种方式来执行脚本。这里每次都需要指定用bash解析脚本
第二种方案:通过配置文件取消dash(一劳永逸的方法)
1) sudo dpkg-reconfigure dash 在选择项中选No,搞定了!