컴퓨터/노트북/인터넷
IT 컴퓨터 기기를 좋아하는 사람들의 모임방
🕰️
2021.03.05 04:19
Linux에서 sh 파일을 사용하는 경우 가끔 다음과 같은 에러가 발생하는 경우가 있습니다.
조회 수 735 추천 수 0 댓글 0
Linux에서 sh 파일을 사용하는 경우 가끔 다음과 같은 에러가 발생하는 경우가 있습니다.
- / bin / bash ^ M : 잘못된 인터프리터 : 해당 파일 또는 디렉토리 없음 (no such file or directory
)
VI로 확인을 해보 아도 펼쳐보기 내용은 이상이 없는데, 다음로 해당 파일을 열어 보도록하자.
- vi -b <파일>
확인을 해보면 개행마다 ^ M이라는 이상한 문자가있는 것을 볼 수 있습니다.
원인으로는이 파일이 아마도 윈도우즈에서 생성되어서 개행마다 캐리지 리턴 문자 인 "^ M"이있어 리눅스에서 실행시 에러를 낸다.
참고로 윈도우즈의 개행은 CR LF이고, 리눅스에서는 LF입니다.
- CR ( 캐리지 리턴)
- LF (줄 바꿈)
위의 해결은 vi -b로 진입하여 CR에 해당하는 "^ M"문자를 모두 삭제하거나 리눅스에서 새로 파일을 작성하여 실행하면 제대로 동작한다.
vi에서 수정시에는 다음을 참고한다.
- : % s / ^ M $ //
- 참고로 ^ M 문자는 Ctrl + V, Ctrl + M을 차례로 나타냅니다.
출처: https://leechwin.tistory.com/entry/Ubuntu-sh-파일-실행시-binbashM-에러가-발생하는-경우 [Library of developer]