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