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

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

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

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

Я не знаю, как возврат каретки попал в ваш файл 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 

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

28
ответ дан 16 апр. '14 в 4:44
источник

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

  • Откройте файл /usr/local/bin/ brew с vi (vi /usr/local/bin/brew)
  • Пока на vi вызывается это commad (через esc или:) :set fileformat=unix
  • Закрыть файл на vi через :wq!

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

С уважением.

24
ответ дан 14 янв. '15 в 4:30
источник