원격 서버로 ssh하는 스크립트를 실행하는 데 문제가 있습니다. 명령줄에서 간단히 ssh를 사용하면 서버에 연결하는 데 문제가 없지만 이 작업을 수행하기 위해 스크립트를 실행하면 "이름 또는 서비스가 알려지지 않았습니다."라는 오류가 발생합니다. /etc/hosts에 IP 주소와 호스트 이름을 추가했는데 도움이 되지 않았습니다.
내 스크립트는 간단합니다.
#!/bin/bash
ssh username@hostname
내가 뭔가 잘못하고 있는 걸까요? 분명히 이 작업에만 스크립트가 필요하지는 않지만 이 작업이 완료되면 실행할 명령을 추가하겠습니다.
답변1
스크립트의 문제점은 Windows와 같은 다른 시스템에서 파일을 복사할 때 개행 문자 \n
와 캐리지 리턴이 추가된다는 것입니다 \r\n
. 줄바꿈에 대한 자세한 내용은 다음을 참조하세요.개행위키피디아 항목.
문제를 설명하기 위해 짧은 조각을 업로드했습니다.여기문제를 해결하는 방법을 설명합니다.
한마디로 : 사용tr이상한 줄 끝을 제거하려면
tr -d \\r <yourscript>newscript && mv newscript yourscript
그런 다음 스크립트를 다시 실행하십시오.
아니면 artm이 제안한대로.
vim
편집기 에 있는 동안 다음을 사용하세요.
:set ff=unix
(ff는 짧다파일 형식)로 파일을 저장합니다 shift+zz
.