윈도우 환경에서 쉘 스크립트 작성 후 리눅스 환경에서 실행하면 윈도우용 개행 문자( ^M)를 리눅스에서 인식하지 못함
이 (^M)을 삭제해주면 해결됨
방법 1. vi 편집기로 ^M 직접 삭제
vi -b [파일명]
방법2. sed 명령어로 삭제
sed; streamlined editor
vi는 편집기를 열여 화면과 상호작용하는 대화형 방식
sed는 명령행에서 파일을 인자로 받아 명령어를 통해 작업 후 결과를 화면으로 확인
sed는 쉘 리다이렉션을 이용해 편집 결과를 저장하기 전까지 파일에 변경이 발생하지 않음
sed -i 's/\r$//' [파일명]
방법 3. vi 에서 fileformat 설정하기
1) vi 편집기 실행
vi [파일명]
2) fileformat 설정 :set fileformat=unix
3) 실행
참고
https://gethlemn.tistory.com/66
/bin/bash^M: bad interpreter: No such file or directory 해결 방법
[원인] Window 환경에서 sh 작성 후, linux 환경에서 실행하여 발생한 문제이다. window에서 사용한 개행 문자가 linux에서는 인식되지 못해 발생하는 문제이다 [해결방법] 1. vi에서 ^M 삭제하기 (1) vi -b [
gethlemn.tistory.com