Linux错误『/bin/bash^M: bad interpreter』解决方案

Linux错误『/bin/bash^M: bad interpreter』解决方案

版权申明:本文为原创文章,转载请注明原文出处

原文链接:https://pangwu86.com/posts/1268822334/

因为自己经常需要在 Windows 和 macOS 两个平台切换工作,所以遇到了多次跨平台脚本报错的情况,标题中的就是最常见的一个。

错误原因


把在 Windows 环境下编写的 shell 脚本放到 Linux 或 macOS 环境下执行,就有很大概率出现该错误。原因是 Windows 下的文件是 dos 格式,每一行结尾以 \r\n 来标识,而 Linux 下的文件是 unix 格式,每一行结尾以 \n 来标识。使用 Vim 打开文件,执行 :set ff, 便可以看到文件格式是什么。

错误的文件格式导致报错

解决方案


第一种方法:使用 dos2unix 命令。

1
2
3
4
5
# macOS 使用 brew 安装 dos2unix
brew install dos2unix

# 修改文件格式
dos2unix [filename]

第二种方法:使用 Vim 直接修改 fileformat。

1
2
3
4
5
6
# 打开文件
vim [filename]

# 修改文件格式并保存
:set ff=unix
:wq

Linux错误『/bin/bash^M: bad interpreter』解决方案

https://pangwu86.com/posts/1268822334/

作者

胖五

发布于

2021-06-03

更新于

2021-06-04

许可协议


评论