env: bash\r: Bestand of directory bestaat niet

Ik probeer YouCompleteMe te installeren vanaf hier.

Als ik uitvoer:

./install.sh --clang-completer

Ik krijg deze foutmelding:

env: bash\r: No such file or directory

Ik weet niet wat er mis is met omgevingsvariabelen. Dit is mijn bash-pad:

which bash 
/bin/bash

Moet ik dit veranderen in /usr/bash? Zo ja, hoe moet ik dat dan doen? Ik heb geprobeerd het bestand ~/.bashrcte wijzigen, maar het werkte niet.


Antwoord 1, autoriteit 100%

De foutmelding suggereert dat het script dat u aanroept, ingesloten \r-tekensheeft, wat op zijn beurt suggereert dat het Windows-achtige \r\nregeluitgangenin plaats van de \n-alleen regeluitgangen die bashverwacht.

Als een snelle oplossingkun je de tekens \rverwijderen. als volgt:

sed $'s/\r$//' ./install.sh > ./install.Unix.sh

Opmerking: de tekenreeks $'...'is een ANSI-C aanhalingstekensondersteund in bash, kshen zsh. Het wordt gebruikt om ervoor te zorgen dat de \ruitbreidt tot een echt CR-teken voordat sedhet script ziet, omdat niet alle sed-implementaties zelf ondersteuning bieden voor \rals een escape-reeks.

en dan uitvoeren

./install.Unix.sh --clang-completer

De grotere vraag is echter waarom je met \r\n-achtige bestanden bent beland – hoogstwaarschijnlijk worden ook andere bestanden beïnvloed.

Misschien draai je Git op Windows, waar een typische configuratie is om Unix-stijl \n-only regeleinden te converteren naar Windows-stijl \r\nregeleinden bij bestanden uitcheckenen opnieuw converteren naar \n-alleen regeleinden bij vastleggen.

Hoewel dit logisch is voor ontwikkelingop Windows, belemmert het installatiescenario’szoals deze .

Om Git bestanden te laten uitchecken met Unix-achtige bestandsuitgangen op Windows– in ieder geval tijdelijk – gebruik:

git config --global core.autocrlf false

Voer vervolgens uw installatieopdrachten met betrekking tot git cloneopnieuw uit.

Om het gedrag van Git later te herstellen, voer je git config --global core.autocrlf trueuit.


Antwoord 2, autoriteit 20%

>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build

Antwoord 3, autoriteit 13%

Zoals de bovenstaande opmerkingen zeggen, gebeurt dit vanwege regeleindes in Windows. Volg deze stappen om het probleem op te lossen

Voor MAC:

brew install dos2unix # Installs dos2unix Mac
find . -type f -exec dos2unix {} \; # recursively removes windows related stuff

Voor Linux:

sudo apt-get install -y dos2unix # Installs dos2unix Linux
sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff

En zorg ervoor dat je git-configuratie als volgt is ingesteld:

git config --global core.autocrlf input

Antwoord 4, autoriteit 9%

Uw bestand heeft Windows-regeleindes. Verander naar Unix regeleindes.


5

Deze link heeft me geholpen bij het oplossen van het probleem.
https://github.com/tiangolo/uwsgi-nginx-flaskas- Docker / problemen / 127

Ik bewerkte mijn .SH-bestand, vervanging van alle CRLF met LF


Antwoord 6

Ik had dit probleem vroeger toen ik Flutter probeerde te downgraden

dit heeft mijn probleem opgelost

rm -rf flutter
git config --global core.autocrlf false
git clone [email protected]:flutter/flutter.git
flutter channel stable

Other episodes