在 Windows 平台上使用 VSCode 编写的 sh 文件,git bash 执行没问题,使用 WSL Linux 子系统执行时,报错 ^M:bad interpreter。

问题复现

使用 Windows Linux 子系统执行 sh 文件,报错^M:bad interpreter:No such file or directory,如下图所示:

而同样是 Windows 平台,使用 git 附带的 git bash 执行此文件,无问题。

问题原因

VSCode 创建的文件,默认使用 CRLF 双字符表示换行,在 VSCode 右下角可以看到当前文件采用的换行符:

Linux 子系统内的 Ubuntu,默认使用 LF 单字符表示换行,遇到 CRLF,执行时报解析错误。

解决方法

在 VSCode 右下角点击 CRLF按钮,而后在弹出的选项处选择 LF选项:

之后,使用Ctrl + S保存文件即可。

梓喵出没博客(azimiao.com)版权所有,转载请注明链接:https://www.azimiao.com/8033.html
欢迎加入梓喵出没博客交流群:313732000

我来吐槽

*

*