【问题标题】:/bin/sh^M: bad interpreter: No such file or directory/bin/sh^M: 错误的解释器: 没有这样的文件或目录
【发布时间】:2014-05-30 14:56:41
【问题描述】:

当我在终端中输入brew doctor(或任何brew 命令)时,我会得到以下响应:

-bash: /usr/local/bin/brew: /bin/sh^M: 错误的解释器:没有这样的文件或目录

我之前看到过^M 的响应,我认为它与dos 行结束文件有关。有没有办法来解决这个问题?

【问题讨论】:

标签: bash macos terminal homebrew


【解决方案1】:

这对我有用:

  1. 使用 vi (vi /usr/local/bin/brew) 打开文件 /usr/local/bin/brew
  2. 在 vi 上发出这个逗号(通过 esc 或 :):set fileformat=unix
  3. 通过:wq!关闭vi上的文件

现在 brew 命令应该可以了。

问候。

【讨论】:

  • 这个问题让我发疯了,但是这个解决方案很有效,谢谢!
  • 很棒——也更简单:-)
【解决方案2】:

我不知道回车是如何在您的 brew 文件中结束的,但您可以使用dos2unix 或通过tr -d '\r' 将其删除。

例子:

tr -d '\r'  < /usr/local/bin/brew   > myfixedbrew

一经验证,即可使用

mv myfixedbrew /usr/local/bin/brew && chmod a+x /usr/local/bin/brew 

替换旧的。

【讨论】:

  • 如何使用 tr -d '\r'?我应该 cd 到 /usr/local/bin 然后在 brew 文件上使用它吗?
  • @mah 我不需要使用 brew 来安装 dos2unix 吗?
  • 人力资源部。抱歉,我没有意识到 OS X 上还没有 dos2unix。
  • 好的 @thatotherguy 我使用了那个命令,现在我想出了一个新错误:“sudo: brew: command not found”。我正在考虑删除所有 brew 然后再次安装它,但是当我尝试使用以下命令删除它时,我得到了这个:“bash: /usr/local/bin/brew: Permission denied”:“sudo rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup"
  • @TheWaller 我没有提到你必须在文件上添加回执行权限
猜你喜欢
  • 2019-10-12
  • 2018-11-14
  • 2018-05-29
  • 1970-01-01
  • 2012-12-22
  • 1970-01-01
  • 1970-01-01
  • 2015-02-22
相关资源
最近更新 更多