Die Fehlermeldung weist darauf hin, dass das von Ihnen\r
aufgerufene Skript eingebettete Zeichen enthält , was wiederum darauf hindeutet, dass es Zeilenenden im Windows-Stil\r\n
anstelle der \n
erwarteten Zeilenenden hat bash
.
Als schnelle Lösung können Sie die \r
Zeichen entfernen . wie folgt:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Hinweis: Die $'...'
Zeichenfolge ist ein ANSI-C zitierte Zeichenfolge in unterstützt bash
, ksh
und zsh
. Es wird verwendet, um sicherzustellen, dass das \r
Zeichen zu einem tatsächlichen CR-Zeichen erweitert wird, bevor sed
das Skript angezeigt wird, da nicht alle sed
Implementierungen selbst \r
eine Escape-Sequenz unterstützen.
und dann laufen
./install.Unix.sh --clang-completer
Die größere Frage ist jedoch, warum Sie \r\n
Dateien im Stil erhalten haben - höchstwahrscheinlich sind auch andere Dateien betroffen.
Vielleicht laufen Sie Git auf Windows , wo eine typische Konfiguration ist im Unix-Stil zu konvertieren \n
-nur Zeilenumbrüche im Windows-Stil \r\n
Zeilenumbrüche auf Dateien auschecken und wieder die Umstellung auf \n
-nur Zeilenumbrüche auf begehen .
Während dieser Sinn für macht Entwicklung unter Windows, es in die Quere kommt von Installationsszenarien wie diese.
Um zu machen Git Besuche Dateien mit Unix-Dateiendungen auf Windows - zumindest vorübergehend - Verwendung:
git config --global core.autocrlf false
Führen Sie dann Ihre Installationsbefehle git clone
erneut aus.
Führen Sie aus, um das Verhalten von Git später wiederherzustellen git config --global core.autocrlf true
.
find . -type f -exec dos2unix {} \;
Schnellbefehl zum Konvertieren des Zeilenendes:
quelle
In meinem Fall hatte ich eine falsche Git-Konfiguration. In der Git-Dokumentation heißt es:
Ich verwende Mac OS und habe genau dieses Problem in einem meiner Projekte. Um es zu lösen, wandte ich mich dem
autocrlf
zu,true
was falsch war.Sie können den
autocrlf
Status Ihrer Git-Konfiguration folgendermaßen überprüfen :Wenn dies zurückkehrt
true
und das Problem in einem Git-Repository auftritt, müssen Sie diese Konfiguration in ändernauf einem Mac / Unix-System. Nur für Windows-Projekte, die Sie verwenden können
git config --global core.autocrlf false
In meinem Fall habe ich das Git-Repository gelöscht und erneut geklont und danach hat alles wieder wie erwartet funktioniert.
Weitere Informationen finden Sie unter https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
quelle
Wie die obigen Kommentare sagen, geschieht dies aufgrund von Windows-Zeilenenden. Führen Sie die folgenden Schritte aus, um das Problem zu beheben
Für MAC:
brew install dos2unix # Installs dos2unix Mac find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Für Linux:
sudo apt-get install -y dos2unix # Installs dos2unix Linux sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Und stellen Sie sicher, dass Ihre Git-Konfiguration wie folgt eingestellt ist:
quelle
In meinem Fall hatte ich eine falsche Git-Konfiguration. In der Git-Dokumentation heißt es:
Ich verwende Mac OS und habe genau dieses Problem in einem meiner Projekte. Um es zu lösen abgestimmt ich
autocrlf
zutrue
.Sie können den
autocrlf
Status Ihrer Git-Konfiguration folgendermaßen überprüfen :Wenn dies zurückkehrt
true
und das Problem in einem Git-Repository auftritt, müssen Sie diese Konfiguration in ändernWelches ist das richtige für Mac / Unix-Systeme. Nur für Windows-Projekte, die Sie verwenden können
git config --global core.autocrlf false
In meinem Fall habe ich das Git-Repository gelöscht und erneut ausgecheckt und danach hat alles wieder wie erwartet funktioniert.
Weitere Informationen finden Sie unter https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
quelle
Dieser Link hat mir geholfen, das Problem zu lösen. https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
Ich habe meine .sh-Datei bearbeitet und alle CRLF durch LF ersetzt
quelle