昨天刚刚写了一个系统优化的shell脚本,在进行测试的时候弹出Syntax error: "(" unexpected
报错,开始还以为是我写的脚本不够严谨,就换到另外一个Linux环境进行测试,结果又可以跑起来。
![图片[1]-执行shell脚本报错:Syntax error: "(" unexpected-编程社](https://cos.bianchengshe.com/wp-content/uploads/2022/12/image-344-181.png?imageMogr2/format/webp/interlace/1/quality/100)
我检查一下shell版本,发现解析器是dash
,这个时候就怀疑是Linux的shell环境存在不兼容的情况,因为shell的不同版本解析器有sh,bash,dash......
等等,不兼容就会报错。
# ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Dec 11 2020 /bin/sh -> dash
经查,在ubuntu和debian上,sh是/bin/dash的软链接,直接执行脚本是dash,Ubuntu/Debian为了加快开机速度,用dash代替了传统的bash。
解决方法一
查看当前系统的shell使用什么版本,然后在脚本进行编辑,在首行添加一行来指定解析器。
#!/bin/bash
解决方法二
如果系统是Ubuntu/Debian
可以使用dpkg-reconfigure dash
这个命令来进行切换。
![图片[2]-执行shell脚本报错:Syntax error: "(" unexpected-编程社](https://cos.bianchengshe.com/wp-content/uploads/2022/12/image-344-182.png?imageMogr2/format/webp/interlace/1/quality/100)
选择 NO
就可以,就可以再次执行命令测试。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容