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