Linux 错误『/bin/bash^M: bad interpreter』解决方案
版权申明:本文为原创文章,转载请注明原文出处
因为自己经常需要在 Windows 和 macOS 两个平台切换工作,所以遇到了多次跨平台脚本报错的情况,标题中的就是最常见的一个。
错误原因
把在 Windows 环境下编写的 shell 脚本放到 Linux 或 macOS 环境下执行,就有很大概率出现该错误。原因是 Windows 下的文件是 dos 格式,每一行结尾以 \r\n
来标识,而 Linux 下的文件是 unix 格式,每一行结尾以 \n
来标识。使用 Vim 打开文件,执行 :set ff
, 便可以看到文件格式是什么。
解决方案
使用 dos2unix 命令。
1 | # macOS 使用 brew 安装 dos2unix |
使用 Vim 直接修改 fileformat。
1 | # 打开文件 |
Linux 错误『/bin/bash^M: bad interpreter』解决方案