env: bash\r: No existe tal archivo o directorio [duplicado]
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 ~/.bashrc
el archivo, pero no funcionó.
El mensaje de error sugiere que el script que está invocando tiene \r
caracteres 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 \n
finales de línea bash
esperados.
Como solución rápida , puedes eliminar los \r
caracteres. como sigue:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Nota: La $'...'
cadena es una cadena entre comillas ANSI-C admitida en bash
, ksh
y zsh
. Se utiliza para garantizar que se \r
expanda a un carácter CR real antes sed
de ver el script, porque no todas sed
las implementaciones admiten \r
una secuencia de escape.
y luego correr
./install.Unix.sh --clang-completer
Sin embargo, la pregunta más importante es por qué terminó con \r\n
archivos 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 \n
de 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 clone
nuevamente.
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\n
y \n
nuevas líneas indistintamente .
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
input
se asegura de convertir CRLF a LF al escribir en la base de datos de objetos
>vim gradlew
:set fileformat=unix
:wq
>./gradlew clean build