오늘 회사에서 작업하던 중, 분명히 vi 에디터로 스크립트 파일을 열어서 확인을 할때는 개행문자와 파일 내용들이 이상없이 나타나 있는데, 콘솔로 스크립트를 실행시키면 라인의 끝에 “^M” 이 붙어있어서 제대로 실행을 할 수 없다는 에러메시지만 자꾸 나타났다.

 역시나 인터넷에서 검색을 해보니 답은 금방 나왔다.

*** 검색어: nabiro, vi, dos, unix, mode, 모드, ^M, 컨트롤M, Ctrl + M

vi 편집기로 작업 완료해서 UNIX에 업로드 하면 가끔 특정 파일의 라인끝에 ^M 문자가 붙는 경우가 있습니다.
이것은 윈도우에서 편집하여 저장할 때 DOS 모드로 저장이 되어 모든 라인의 끝 (엔터키를 친곳)에 CR/LF가 붙기
때문입니다.

유닉스에서는 CR 이던가 LF 이던가 하나만 엔터로 인식하여 ^M 문자가 라인 끝에 붙게 됩니다.

이를 막기 위해서는 윈도우의 vi 에디터에서 파일을 저장할 때 UNIX 모드로 저장해야 합니다.
유닉스 모드로 변경하는 명령어는 아래와 같습니다.

set fileformat=unix

DOS 모드는

set fileformat=dos

위 명령어를 적용한 후 저장하면 각각의 모드로 저장됩니다.

출처 : http://nabiro.tistory.com/entry/vi-%EC%97%90%EB%94%94%ED%84%B0%EC%97%90%EC%84%9C-DOS-%EB%AA%A8%EB%93%9C-UNIX-%EB%AA%A8%EB%93%9C-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 간단한 것이었는데… 역시나 기본기가 정말 중요하다는 것을 새삼스레 느낀다..

Tags: , , ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.