执行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
,即可