El script de shell editado en Windows muestra un mensaje de error inesperado

El script de shell editado en Windows muestra un mensaje de error inesperado

Tengo problemas para ejecutar un script para enviar por ssh a un servidor remoto. Si simplemente hago ssh desde la línea de comando, no tengo problemas para llegar al servidor, pero cuando ejecuto un script para hacer esto aparece el error "Nombre o servicio desconocido". Agregué la dirección IP y el nombre de host a /etc/hosts y eso no ayudó.

Mi guión es simplemente:

 #!/bin/bash 
ssh username@hostname

¿Estoy haciendo algo mal? Obviamente no necesito un script solo para esto, pero agregaré comandos para ejecutar una vez que esto funcione.

Respuesta1

El problema del script es que al copiar un archivo de otro sistema como Windows, agrega una nueva línea \ny un retorno de carro \r\n. Para obtener más información sobre los cambios de línea, consultenueva líneaentrada en wikipedia.

Para demostrar el problema, he subido un breve fragmento.aquíque explica cómo resolver el problema.

En resumen: utilizartrpara eliminar esos extraños finales de línea

tr -d \\r <yourscript>newscript && mv newscript yourscript

Luego ejecute el script nuevamente.

O como sugirió artm.

Mientras estás en vimel editor, usa

:set ff=unix

(fes corto paraformato de archivo) y guarde el archivo por shift+zz.

información relacionada