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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。