Windows에서 편집된 쉘 스크립트가 예기치 않은 오류 메시지를 표시합니다.

Windows에서 편집된 쉘 스크립트가 예기치 않은 오류 메시지를 표시합니다.

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

관련 정보