리눅스에서 생성한 Bash Shell을 윈도우에서 수정후 실행시 발생 할 수 있는 오류로
$'\r': command not found 또는 /bin/sh^M: bad interpreter 같은 문구가 발생함
원인은 줄 바꿈 처리를 윈도우에선 CRLF (\r\n), 리눅스에선 LF (\n) 를 사용해서 그렇다고 한다.
해결방안으로는 터미널에서 sed 명령어를 사용하여 처리하며 명령어는 아래와 같다.
$ sed -i 's\r$//' [대상 파일] |
위 방법으로 조치가 되었으며, \r이 모두 치환되어 스크립트가 정상 수행 된다.
vi모드에서 치환하는 방법도 존재하며 vi모드에서 아래 명령어를 수행한다.
:%s/^M//g |
위에서 ^M는 ^+M 이 아니고 Ctrl + v + m 이다.
윈도우에서 Linux파일을 수정 및 업로드할 때 ^M이 발생하지 않는 방법이다.
FTP로 업로드 할 때 텍스트 방식 / 2진 방식 선택할 때 텍스트 방식을 사용하며,
이미 업로된 파일에 대해선 파일 형식을 변경한다.
Edit plus 기준 '문서 -> 파일 형식 (CR/LF) -> 파일 형식 변경 -> Unix / Mac 선택'