Komunikat o błędzie sugeruje, że skrypt, który wywołujesz, ma osadzone \r
znaki , co z kolei sugeruje, że zawiera zakończenia linii w stylu Windows\r\n
zamiast oczekiwanych końcówek - \n
only line bash
.
W ramach szybkiego rozwiązania możesz usunąć \r
znaki. następująco:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Uwaga: $'...'
Ciąg jest ANSI-C cudzysłowie obsługiwane bash
, ksh
i zsh
. Służy do upewnienia się, że \r
przed sed
wyświetleniem skryptu rozwijany jest do rzeczywistego znaku CR , ponieważ nie wszystkie sed
implementacje 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\n
plikach 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 \n
podziałów wierszy tylko w stylu uniksowym \r\n
na podziały wierszy w stylu systemu Windows przy wypisywaniu plików i ponownej konwersji na \n
tylko 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 clone
ponownie polecenia instalacji dotyczące .
Aby później przywrócić zachowanie Gita, uruchom git config --global core.autocrlf true
.
find . -type f -exec dos2unix {} \;