Linux 下 Bash 脚本 bad interpreter 报错的解决方法

本文理论上适合所有 Linux 操作系统。

问题复现
有时候为了图方便,我们会直接在本机 git clone 一个 Github 的私有仓库,然后再使用 lrzszsftp 上传到服务器上,此时如果你本机是 Windows 系统,服务器是 Linux 系统,那么 git clone 下来的脚本文件编码就自动给你换成 Windows 的 CRLF,然后在 Linux 服务器上执行脚本时,会报错

/bin/bash^M: bad interpreter: No such file or directory

解决方法一
使用 VS Code 或者其他类似的软件,打开脚本手工转换编码为 UNIX (LF),一般情况下你可以在编辑器的右下角找到:
Linux 下 Bash 脚本 bad interpreter 报错的解决方法-每日运维
然后换成 LF 并保存:
Linux 下 Bash 脚本 bad interpreter 报错的解决方法-每日运维
再重新上传即可。
解决方法二
直接在 Linux 终端下运行:

sed -i -e 's/\r$//' 脚本文件名

好了,就完事了 = =