执行Shell脚本遇到Syntax error: "(" unexpected
问题背景
今天在使用sh prepro.sh指令执行一个预处理数据的脚本时,遇到了Syntax error: "(" unexpected的问题,再三检查,并没有发现脚本本身有什么问题
问题定位
查询后发现是Ubuntu的Shell版本问题,Ubuntu为了加快响应速度,默认采用了速度更快,但功能相对更少的dash来替代传统的bash,因此,我们可以用以下两种方案来解决问题:
解决方案
解决方案1
强制使用bash来执行脚本,如bash prepro.sh
解决方案2
取消dash,输入sudo dpkg-reconfigure dash,随后选择no,即可

浙公网安备 33010602011771号