Сообщение об ошибке предполагает, что вызываемый вами скрипт имеет встроенные \r
символы , что, в свою очередь, предполагает, что он имеет окончания строки в стиле Windows,\r\n
а не \n
ожидаемые окончания строки bash
.
В качестве быстрого исправления вы можете удалить \r
символы. следующим образом:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Примечание: $'...'
строка является ANSI-C строка в кавычках поддерживается bash
, ksh
и zsh
. Он используется для обеспечения того, \r
чтобы символ расширялся до фактического символа CR до того, как sed
увидит сценарий, потому что не все sed
реализации сами по себе поддерживают \r
escape-последовательность.
а затем запустить
./install.Unix.sh --clang-completer
Однако более серьезный вопрос заключается в том, почему у вас \r\n
остались файлы -style - скорее всего, затронуты и другие файлы.
Возможно , вы работаете с Git на Windows , , где типичная конфигурация заключается в преобразовании Unix-стиль \n
-Только разрывов строк в Windows , стиль \r\n
разрывы строк на проверку файлов из и повторного преобразования в \n
-Только разрывы строк на совершение .
Хотя это имеет смысл для разработки под Windows, это мешает подобным сценариям установки .
Чтобы Git извлекал файлы с окончанием файлов в стиле Unix в Windows - хотя бы временно - используйте:
git config --global core.autocrlf false
Затем git clone
снова запустите ваши команды установки .
Чтобы позже восстановить поведение Git, запустите git config --global core.autocrlf true
.
find . -type f -exec dos2unix {} \;
Быстрая команда для преобразования окончания строки:
источник
В моем случае у меня была неправильная конфигурация git. В документации git указано:
Я использую Mac OS и именно эта проблема у меня есть в одном из моих проектов. Чтобы решить эту проблему, я обратился
autocrlf
к тому,true
что было не так.Вы можете проверить
autocrlf
состояние вашей конфигурации git следующим образом:Так что, если это вернется,
true
и проблема возникнет в репозитории git, вам придется изменить эту конфигурацию нав системе Mac / Unix. Только для проектов Windows вы можете использовать
git config --global core.autocrlf false
В моем случае я удалил репозиторий git и снова клонировал его, и после этого все снова заработало, как ожидалось.
Узнайте больше на https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
источник
Как говорится в комментариях выше, это происходит из-за окончаний строк в Windows. Чтобы устранить проблему, выполните следующие действия.
Для MAC:
brew install dos2unix # Installs dos2unix Mac find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Для Linux:
sudo apt-get install -y dos2unix # Installs dos2unix Linux sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
И убедитесь, что ваша конфигурация git настроена следующим образом:
источник
В моем случае у меня была неправильная конфигурация git. В документации git указано:
Я использую Mac OS и именно эта проблема у меня есть в одном из моих проектов. Чтобы решить эту проблему, я настроился
autocrlf
наtrue
.Вы можете проверить
autocrlf
состояние вашей конфигурации git следующим образом:Так что, если это вернется,
true
и проблема возникнет в репозитории git, вам придется изменить эту конфигурацию начто является правильным для систем Mac / Unix. Только для проектов Windows вы можете использовать
git config --global core.autocrlf false
В моем случае я удалил репозиторий git и снова проверил его, и после этого все снова заработало, как ожидалось.
Узнайте больше на https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
источник
Эта ссылка помогла мне решить проблему. https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
Я отредактировал свой файл .sh, заменив все CRLF на LF
источник