env: bash\r: No existe tal archivo o directorio [duplicado]

Resuelto Brijesh Rakholia asked hace 9 años • 11 respuestas

Estoy intentando instalar YouCompleteMe desde aquí .

Cuando ejecuto:

./install.sh --clang-completer

Recibo este error:

env: bash\r: No such file or directory

No sé qué pasa con las variables de entorno. Aquí está mi ruta de bash:

which bash 
/bin/bash

¿ Necesito cambiarlo a /usr/bash? En caso afirmativo, ¿cómo debo hacer eso? Intenté cambiar ~/.bashrcel archivo, pero no funcionó.

Brijesh Rakholia avatar Mar 14 '15 10:03 Brijesh Rakholia
Aceptado

El mensaje de error sugiere que el script que está invocando tiene \rcaracteres incrustados , lo que a su vez sugiere que tiene finales de línea (nuevas líneas) al estilo de Windows\r\n en lugar de los \nfinales de línea bashesperados.

Como solución rápida , puedes eliminar los \rcaracteres. como sigue:

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

Nota: La $'...'cadena es una cadena entre comillas ANSI-C admitida en bash, kshy zsh. Se utiliza para garantizar que se \rexpanda a un carácter CR real antes sedde ver el script, porque no todas sedlas implementaciones admiten \runa secuencia de escape.

y luego correr

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

Sin embargo, la pregunta más importante es por qué terminó con \r\narchivos de estilo; lo más probable es que otros archivos también se vean afectados.

Quizás esté ejecutando Git en Windows , donde una configuración típica es convertir saltos de línea de solo estilo Unix en saltos de línea \nde estilo Windows al retirar archivos y volver a convertirlos a saltos de línea de solo al confirmar\r\n\n .

Si bien esto tiene cierto sentido para el desarrollo [1] en Windows, obstaculiza escenarios de instalación como estos.

Para hacer que Git revise archivos con terminaciones de estilo Unix en Windows , al menos temporalmente, use:

git config --global core.autocrlf false

Luego ejecute los comandos de instalación git clonenuevamente.

Para restaurar el comportamiento de Git más adelante, ejecute git config --global core.autocrlf true.


[1] Hoy en día, la mayoría de los editores y CLI de Windows pueden manejar \r\ny \nnuevas líneas indistintamente .

mklement0 avatar Mar 14 '2015 03:03 mklement0

Esto sucede debido a los finales de línea de Windows. Para solucionar el problema, siga los pasos a continuación.

Para Mac:

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

Para Linux:

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

Y asegúrese de que su configuración de git esté configurada de la siguiente manera:

git config --global core.autocrlf input

inputse asegura de convertir CRLF a LF al escribir en la base de datos de objetos

salvi shahzad avatar Sep 16 '2020 06:09 salvi shahzad
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build
Tuan Nguyen avatar Dec 27 '2018 10:12 Tuan Nguyen