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

!markdown


# Linux



### Error (오류)

/bin/sh^M : bad interpreter



### Problem (문제)


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


- 윈도우에서는 


- 리눅스에서는 




### Solved (해결)


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

```sh

vi -b {FILENAME}

```

ex)

```sh

vi -b filename.sh

```


#### 2. ^M 표시를 없앤다.


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

```sh

dos2unix {FILENAME}

```

ex)

```sh

dos2unix filename.sh

```


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

```sh

:set fileformat=unix

```


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

```sh

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

```


ex)

```sh

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

```        


### Reference (참고)


[http://stackoverflow.com/questions/2920416/configure-bin-shm-bad-interpreter](http://stackoverflow.com/questions/2920416/configure-bin-shm-bad-interpreter)