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 \n
e 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 vim
editor, use
:set ff=unix
(affé curto paraformato de arquivo) e salve o arquivo em shift+zz
.