미니옵빠의 code stubs

/bin/sh^M: bad interpreter: No such file or directory 오류 발생 시 본문

OS/Linux

/bin/sh^M: bad interpreter: No such file or directory 오류 발생 시

미니옵빠 2011. 4. 28. 16:16
linux 에서 스크립트 실행할 때
/bin/sh^M: bad interpreter: No such file or directory
와 같은 에러 메시지가 나타날 때가 있다.

이것은 십중 팔구 윈도우에서 스크립트 파일을 만든 뒤, linux 에서 실행했기 때문에 나타나는 오류이다.
정확히는 줄 끝 (줄바꿈)을 의미하는 개행문자가 달라서 발생하는 문제인데 이것의 해결을 위해서는 다음의 방법 중 한 가지로 처리한다.

1. vi -b
vi 의 바이너리 모드로 들어가면 ^M 이라는 문자가 보인다. 이것을 지워주면 된다.

2. dos2unix
linux 콘솔에서 dos2unix filename.txt 와 같이 명령을 주어 파일을 변경한다.

3. subversion property 설정
형상관리 시스템으로 subversion을 쓰고 있을 경우, 해당 스크립트 파일의 property 에 svn:eol-style=native 를 추가해 준다.
(native 는 줄 끝 문자를 해당 OS에 맞게 변경해준다)