sh执行脚本报错Syntax error: "(" unexpected

问题:

sh脚本中有数组初始化的内容

$ 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,这两种方式来执行脚本。

但行好事,莫问前程
原文地址:https://www.cnblogs.com/mingfan/p/15125796.html