Сообщение об ошибке предполагает, что вызываемый вами скрипт имеет встроенные \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 {} \;