LANGUAGE/!$%!% ERROR NOTE 2017. 4. 16. 17:36

Linux

Error (오류)

/bin/sh^M : bad interpreter

Problem (문제)

윈도우에서 만든 파일과 개행방식이 달라서 생기는 문제이다. 

  • 윈도우에서는 

  • 리눅스에서는 

Solved (해결)

1. vi편집기 바이너리모드로 파일을 열어보면 ^M 표시가 줄의 끝마다 나있는 것을 확인 할 수 있다.

vi -b {FILENAME}

ex)

vi -b filename.sh

2. ^M 표시를 없앤다.

방법1. dos2unix 프로그램을 이용한다.

dos2unix {FILENAME}

ex)

dos2unix filename.sh

방법3. VI편집기로 열고, [ESC] 그다음 이 명령어를 입력한 후 저장한다.

:set fileformat=unix

방법2. sed를 이용하여 파일을 치환한다.

sed -i 's/\r//' {FILENAME}

ex)

sed -i 's/\r//' filename.sh

        

Reference (참고)

http://stackoverflow.com/questions/2920416/configure-bin-shm-bad-interpreter