Komunikat o błędzie sugeruje, że skrypt, który wywołujesz, ma osadzone \rznaki , co z kolei sugeruje, że zawiera zakończenia linii w stylu Windows\r\n zamiast oczekiwanych końcówek - \nonly line bash.
W ramach szybkiego rozwiązania możesz usunąć \rznaki. następująco:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Uwaga: $'...'Ciąg jest ANSI-C cudzysłowie obsługiwane bash, kshi zsh. Służy do upewnienia się, że \rprzed sedwyświetleniem skryptu rozwijany jest do rzeczywistego znaku CR , ponieważ nie wszystkie sedimplementacje same obsługują\r sekwencję ucieczki.
a potem biegnij
./install.Unix.sh --clang-completer
Jednak większe pytanie brzmi, dlaczego skończyło się na \r\nplikach w stylu-- najprawdopodobniej dotyczy to również innych plików.
Być może korzystasz z Git w systemie Windows , gdzie typowa konfiguracja polega na przekonwertowaniu \npodziałów wierszy tylko w stylu uniksowym \r\nna podziały wierszy w stylu systemu Windows przy wypisywaniu plików i ponownej konwersji na \ntylko podziały wierszy przy zatwierdzaniu .
Chociaż ma to sens w przypadku programowania w systemie Windows, przeszkadza w scenariuszach instalacji takich .
Aby Git pobierał pliki z końcówkami w stylu uniksowym w systemie Windows - przynajmniej tymczasowo - użyj:
git config --global core.autocrlf false
Następnie uruchom git cloneponownie polecenia instalacji dotyczące .
Aby później przywrócić zachowanie Gita, uruchom git config --global core.autocrlf true.
find . -type f -exec dos2unix {} \;