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