/bin / sh^M: плохой интерпретатор: нет такого файла или каталога

когда я вхожу brew doctor (или brew команда) в моем терминале я получаю это как ответ:

-bash: / usr / local/bin /brew:/bin / sh^M: плохой интерпретатор: нет такого файла или каталога

Я видел ^M ответ раньше, и я думаю, что это связано с файлами окончания строки dos. Есть ли способ исправить это?

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 

заменить старый.


Это сработало для меня:

  1. открыть файл / usr / local/bin / brew с vi (vi /usr/local/bin/brew)
  2. в то время как на vi выдайте эту запятую (через esc или :) :set fileformat=unix
  3. закрыть файл на vi через :wq!

команда brew должна быть в порядке.

С уважением.