Syntax error: "(" unexpected (expecting "done")原来是dash的错

$sh my_script.sh
Syntax error: "(" unexpected (expecting "done")

通过网上查阅资料,发现sh默认是指向dash的:
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Mar 23 2022 /bin/sh -> dash

原来Ubuntu安装时默认使用dash,sh运行shell脚本会指向在dash下运行因dash的兼容可能会有问题,但用bash来运行是不报错的。
$bash my_script.sh

长期解决该问题就是重新配置dash:

sudo dpkg-reconfigure dash

弹出重新配置dash界面,并选择“no”而弃用dash。

你可能感兴趣的:(Syntax error: "(" unexpected (expecting "done")原来是dash的错)