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 al estilo \r\nde Windows en lugar de los \nfinales de línea -only bashesperados.
Como solución rápida , puede eliminar los \rcaracteres. como sigue:
sed $'s/\r$//' ./install.sh > ./install.Unix.sh
Nota: La $'...'cadena es un ANSI-C citada cadena apoyada en bash, ksh, y zsh. Se utiliza para garantizar que se \rexpanda a un carácter CR real antes de sedver el script, porque no todas las sedimplementaciones en sí mismas admiten \rcomo secuencia de escape.
y luego corre
./install.Unix.sh --clang-completer
Sin embargo, la pregunta más importante es por qué ha terminado con \r\narchivos de estilo; lo más probable es que otros archivos también se vean afectados.
Tal vez usted está funcionando con Git en Windows , donde una configuración típica es la de convertir al estilo Unix \nsaltos de línea -a sólo a estilo de Windows \r\nsaltos de línea en la comprobación de archivos fuera y volver a convertir a \nlos saltos de línea -sólo en la comisión .
Si bien esto tiene sentido para el desarrollo en Windows, se interpone en escenarios de instalación como estos.
Para hacer que Git extraiga archivos con terminaciones de archivo estilo Unix en Windows , al menos temporalmente, use:
git config --global core.autocrlf false
Luego ejecute sus comandos de instalación involucrando git clonenuevamente.
Para restaurar el comportamiento de Git más tarde, ejecute git config --global core.autocrlf true.
find . -type f -exec dos2unix {} \;Comando rápido para convertir el final de línea:
fuente
En mi caso, tenía una configuración de git incorrecta. La documentación de git dice:
Estoy usando Mac OS y exactamente tengo este problema en uno de mis proyectos. Para solucionarlo me volví
autocrlfhacia lotrueque estaba mal.Puede verificar el
autocrlfestado de su configuración de git de esta manera:Entonces, si esto regresa
truey el problema ocurre dentro de un repositorio de git, tendrá que cambiar esa configuración aen un sistema Mac / Unix. Solo para proyectos de Windows que puede usar
git config --global core.autocrlf falseEn mi caso, eliminé el repositorio de git y lo cloné nuevamente y luego todo volvió a funcionar como se esperaba.
Obtenga más información en https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
fuente
Como dicen los comentarios anteriores, está sucediendo debido a los finales de línea de Windows. Para solucionar el problema, siga estos pasos
Para Mac:
brew install dos2unix # Installs dos2unix Mac find . -type f -exec dos2unix {} \; # recursively removes windows related stuffPara Linux:
sudo apt-get install -y dos2unix # Installs dos2unix Linux sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuffY asegúrese de que su configuración de git esté configurada de la siguiente manera:
fuente
En mi caso, tenía una configuración de git incorrecta. La documentación de git dice:
Estoy usando Mac OS y exactamente tengo este problema en uno de mis proyectos. Para resolverlo Sintonicé
autocrlfatrue.Puede verificar el
autocrlfestado de su configuración de git de esta manera:Entonces, si esto regresa
truey el problema ocurre dentro de un repositorio de git, tendrá que cambiar esa configuración acuál es el correcto para sistemas Mac / Unix. Solo para proyectos de Windows que puede usar
git config --global core.autocrlf falseEn mi caso, eliminé el repositorio de git y lo revisé nuevamente y luego todo funcionó nuevamente como se esperaba.
Obtenga más información en https://www.git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
fuente
Este enlace me ayudó a resolver el problema. https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/127
Edité mi archivo .sh, reemplazando todos los CRLF con LF
fuente