windows git bash line-endings core.autocrlf

windows - env: bash / r: No existe tal archivo o directorio



git line-endings (3)

Estoy tratando de instalar YouCompleteMe desde here .

Cuando ejecuto:

./install.sh --clang-completer

Me sale este error:

env: bash/r: No such file or directory

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

which bash /bin/bash

¿Necesito cambiarlo a / usr / bash? Si es así, entonces, ¿cómo debo hacer eso? Intenté cambiar el archivo ~ / .bashrc, pero no funcionó.


El mensaje de error sugiere que la secuencia de comandos que está invocando tiene caracteres incrustados , lo que a su vez sugiere que tiene un final de línea de estilo Windows /r/n lugar de los finales de línea /n único que bash espera.

Como solución rápida , puede eliminar los caracteres. como sigue:

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

y luego correr

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

Sin embargo, la pregunta más importante es por qué terminaste con los archivos /r/n style, lo más probable es que otros archivos también se vean afectados.

Tal vez esté ejecutando Git en Windows , donde una configuración típica es convertir los saltos de línea /n -estilo de Unix a saltos de línea /r/n estilo de Windows al revisar archivos y reconvertirlos a saltos de línea solo /n en cometer

Si bien esto tiene sentido para el desarrollo en Windows, interfiere con escenarios de instalación como estos.

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

git config --global core.autocrlf false

A continuación, ejecute de nuevo los comandos de instalación relacionados con git clone .

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


Me encontré con algo similar. Puede usar dos2unix install.sh para convertir los finales de línea. Varios archivos a través de find [pattern] | xargs dos2unix find [pattern] | xargs dos2unix


Su archivo tiene finales de línea de Windows. Cambiar a finales de línea de Unix.