Le message d'erreur suggère que le script que vous appelez a des \r
caractères incorporés , ce qui suggère à son tour qu'il a des fins de ligne de style Windows\r\n
au lieu des \n
fins de ligne attendues bash
.
En guise de solution rapide , vous pouvez supprimer les \r
caractères. comme suit:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Remarque: La $'...'
chaîne est une chaîne entre guillemets ANSI-C pris en charge bash
, ksh
et zsh
. Il est utilisé pour s'assurer que le se \r
développe en un caractère CR réel avant de sed
voir le script, car toutes les sed
implémentations ne prennent pas en charge en \r
tant que séquence d'échappement.
puis exécutez
./install.Unix.sh --clang-completer
Cependant, la plus grande question est de savoir pourquoi vous vous êtes retrouvé avec \r\n
des fichiers -style - très probablement, d'autres fichiers sont également affectés.
Peut-être que vous exécutez Git sur Windows , où une configuration typique consiste à convertir les \n
sauts de ligne de style Unix en sauts de \r\n
ligne de style Windows lors de l' extraction de fichiers et de les reconvertir en \n
sauts de ligne uniquement lors de la validation .
Bien que cela ait du sens pour le développement sous Windows, cela gêne les scénarios d' installation comme ceux-ci.
Pour que Git extrait des fichiers avec des fins de fichier de style Unix sous Windows - au moins temporairement - utilisez:
git config --global core.autocrlf false
Ensuite, exécutez à nouveau vos commandes d'installation git clone
.
Pour restaurer le comportement de Git plus tard, exécutez git config --global core.autocrlf true
.
find . -type f -exec dos2unix {} \;
Commande rapide pour convertir la fin de ligne:
la source
Dans mon cas, j'avais une mauvaise configuration git. La documentation de git déclare:
J'utilise Mac OS et j'ai exactement ce problème dans l'un de mes projets. Pour le résoudre, je me suis tourné
autocrlf
verstrue
ce qui n'allait pas.Vous pouvez vérifier l'
autocrlf
état de votre configuration git comme ceci:Donc, si cela revient
true
et que le problème survient dans un référentiel git, vous devrez changer cette configuration ensur un système Mac / Unix. Pour les projets Windows uniquement que vous pouvez utiliser
git config --global core.autocrlf false
Dans mon cas, j'ai supprimé le référentiel git et je l'ai cloné à nouveau et après cela, tout a fonctionné à nouveau comme prévu.
En savoir plus sur https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
la source
Comme le disent les commentaires ci-dessus, cela se produit en raison des fins de ligne de Windows. Pour résoudre le problème, procédez comme suit
Pour Mac:
brew install dos2unix # Installs dos2unix Mac find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Pour Linux:
sudo apt-get install -y dos2unix # Installs dos2unix Linux sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Et assurez-vous que votre configuration git est définie comme suit:
la source
Dans mon cas, j'avais une mauvaise configuration git. La documentation de git déclare:
J'utilise Mac OS et j'ai exactement ce problème dans l'un de mes projets. Pour le résoudre, je me suis mis
autocrlf
à l' écoutetrue
.Vous pouvez vérifier l'
autocrlf
état de votre configuration git comme ceci:Donc, si cela revient
true
et que le problème survient dans un référentiel git, vous devrez changer cette configuration enqui est le bon pour les systèmes Mac / Unix. Pour les projets Windows uniquement que vous pouvez utiliser
git config --global core.autocrlf false
Dans mon cas, j'ai supprimé le référentiel git et je l'ai extrait à nouveau et après cela, tout a fonctionné à nouveau comme prévu.
En savoir plus sur https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
la source
Ce lien m'a aidé à résoudre le problème. https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
J'ai édité mon fichier .sh, en remplaçant tous les CRLF par LF
la source