오늘 회사에서 작업하던 중, 분명히 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
위 명령어를 적용한 후 저장하면 각각의 모드로 저장됩니다.
간단한 것이었는데… 역시나 기본기가 정말 중요하다는 것을 새삼스레 느낀다..