Ошибка /bin/sh^M: bad interpreter: No such file or directory

6 Марта 2020 | Терминал

Почему возникает эта ошибка и как ее исправить.

Ошибка /bin/sh^M: bad interpreter: No such file or directory
Сообщение об ошибке выглядит следующим образом:

bash: script.sh: /bin/sh^M: bad interpreter: No such file or directory





^M — это символ перевода возврата каретки. Linux использует символ перевода строки, чтобы отметить конец строки, в то время как для Windows использует последовательность из двух символов CR LF.. Это значит, что Ваш файл содержит переводы строки в стиле Windows, что сбивает с толку Linux и приводит к этой ошибке.




Способ 1. Воспользоваться редактором Vi. Открываем файл


# vi script.sh


Вводим следующую строку

:set fileformat=unix 




И сохраняем изменения:

:wq


Способ 2. При помощи команды sed.

sed -i -e ‘s/\r$//’ script.sh


Способ 3. При помощи утилиты dos2unix.

aptitude install dos2unix
$ dos2unix script.sh


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...