shell script editado no Windows exibe mensagem de erro inesperada

shell script editado no Windows exibe mensagem de erro inesperada

Estou tendo problemas para executar um script para ssh em um servidor remoto. Se eu simplesmente usar o ssh na linha de comando, não terei problemas para acessar o servidor, mas quando executo um script para fazer isso, recebo um erro: "Nome ou serviço não conhecido". Adicionei o endereço IP e o nome do host a/etc/hosts e isso não ajudou.

Meu script é simplesmente:

 #!/bin/bash 
ssh username@hostname

Estou fazendo algo errado? Obviamente não preciso de um script só para isso, mas vou adicionar comandos para executar assim que começar a funcionar.

Responder1

O problema do script é que ao copiar um arquivo de outro sistema como o Windows, ele adiciona uma nova linha \ne um retorno de carro \r\n. Para mais informações sobre feeds de linha, consultenova linhaentrada na Wikipédia.

Para demonstrar o problema, carreguei um pequeno fragmentoaquique explica como resolver o problema.

Resumindo: Usetrpara remover aqueles finais de linha estranhos

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

Em seguida, execute o script novamente.

Ou como artm sugeriu.

Enquanto estiver no vimeditor, use

:set ff=unix

(affé curto paraformato de arquivo) e salve o arquivo em shift+zz.

informação relacionada