迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

解决 Bash 中的 bad interpreter 错误

作者:迹忆客 最近更新:2024/03/14 浏览次数:

在 Unix/Linux 操作系统中创建的文件和在 DOS/Windows 操作系统中创建的文件的行尾不同。这种差异可能会导致在一个操作系统中创建的文件不能在另一个操作系统中执行。

本文解释了如何解决这些错误之一,即 Linux Bash 中的 /bin/bash^M: bad interpreter: No such file or directory 错误。


解决 Bash 中的 /bin/bash^M: bad interpreter 错误

Unix 操作系统使用换行符 ("\n") 作为行尾。但是,Windows 操作系统使用回车和换行 ("\r\n")。

所以你不能在 Unix 上运行用 Windows 编写的 bash 脚本。你必须清除回车符才能执行文件。

本文的其余部分解释了解决此错误的不同方法。


更改 Windows 中的 EOL 转换以解决 Bash 中的 /bin/bash^M: bad interpreter 错误

Windows 上的文本编辑器默认将行尾设置为 CRLF。在你正在使用的应用程序的设置中将其更改为 LF

例如:

  1. Sublime Text 中,你可以在 View 选项卡上的 Line Endings 设置中选择 Unix
  2. Notepad++ 中,你可以在 Edit 选项卡上的 EOL Conversion 设置中选择 Unix (LF)

你可以在 Unix 操作系统上执行此文件。它不会再给出错误了。


使用 dos2unix 命令解决 Bash 中的 /bin/bash^M: bad interpreter 错误

doc2unix 命令行工具是一个 DOS 到 Unix 文本文件格式转换器,反之亦然。我们可以使用这个工具使我们的文件与 Unix 兼容。

它的用法如下。

dos2unix test.sh

该文件将被转换为 Unix 格式。你现在可以执行该文件。

./file.sh

使用 sed 命令解决 Bash 中的 /bin/bash^M: bad interpreter 错误

sed 命令行工具对输入流执行文本转换。你可以使用以下命令删除文件中的 "\r" 字符。

sed -i -e 's/\r$//' file.sh

现在你可以执行该文件而不会出错。

./file.sh

除了所有这些方法之外,你还可以在 Unix 系统中使用文本编辑器重写文件内容。这样,行尾设置正确,不会出现错误。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便