背景
在自己Ubuntu环境执行sh脚本,报错"xxx.sh:/bin/bash^M:解释器错误: 没有那个文件或目录",查了下是Ubuntu系统默认的shell是dash:
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/0b7a404d5169489fb38e4253a7adbaf5.png)
修改配置过下,变成bash
解决方案
在终端执行:
sudo dpkg-reconfigure dash
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/37a77bb655fb470587e04c04a0d59c48.png)
然后弹框对话框选择No
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/91179778d2f242d6812e5e145d980271.png)
然后就大功告成了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/52b1ddd4a6994fe8a5ae3c28ad4c1798.png)
知识补充
Dash是本是bash的符号链接,鉴于bash太复杂,所以有人把bash从NetBSD移植到Linux并更名为dash(Debian Almquist Shell),并建议将/bin/sh指向它,以获得更快的脚本执行速度。