На этот вопрос уже есть ответ здесь:
Эта ошибка возникает 16.04, когда я пытаюсь запустить сценарий sh для установщика qb64.
james@ubuntu:~/qb64$ ./setup_lnx.sh
bash: ./setup_lnx.sh: /bin/bash^M: bad interpreter: No such file or directory
james@ubuntu:~/qb64$
Ваш файл имеет окончания строки стиля DOS/Windows (CR LF) , но в подобных Unix системах только управляющий символ LF используется в качестве разрыва строки.
дополнительное управляющий символ CR показывают закодированный как ^M
в Вашем выводе. Можно также видеть его, когда Вы работаете cat -A setup_lnx.sh
.
Для преобразования окончаний строки от стиля DOS/Windows до стиля Unix существует инструмент, названный dos2unix
. Вы устанавливаете его использование:
sudo apt-get install dos2unix
Затем можно просто преобразовать окончания строки файлов в обоих способах использовать
dos2unix FILENAME
unix2dos FILENAME
В случае, просто выполнить эту команду ниже, и файл сценария будет преобразован оперативный:
dos2unix setup_lnx.sh
После того, как тот Bash должен смочь интерпретировать файл правильно.