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 al estilo \r\n
de Windows en lugar de los \n
finales de línea -only bash
esperados.
Como solución rápida , puede eliminar los \r
caracteres. 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 \r
expanda a un carácter CR real antes de sed
ver el script, porque no todas las sed
implementaciones en sí mismas admiten \r
como 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\n
archivos 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 \n
saltos de línea -a sólo a estilo de Windows \r\n
saltos de línea en la comprobación de archivos fuera y volver a convertir a \n
los 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 clone
nuevamente.
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í
autocrlf
hacia lotrue
que estaba mal.Puede verificar el
autocrlf
estado de su configuración de git de esta manera:Entonces, si esto regresa
true
y 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 false
En 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 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:
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é
autocrlf
atrue
.Puede verificar el
autocrlf
estado de su configuración de git de esta manera:Entonces, si esto regresa
true
y 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 false
En 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