Windows에서 편집된 쉘 스크립트에 예기치 않은 오류 메시지가 표시됨

Windows에서 편집된 쉘 스크립트에 예기치 않은 오류 메시지가 표시됨

원격 서버에 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.

관련 정보