반응형
윈도우, 리눅스 모두 문서를 작성하다가 줄바꿈을 하는 경우, 동일하게 enter를 누르게 된다. 이를 개행이라고 한다.
하지만 윈도우와 리눅스는 문서의 줄바꿈을 받아드리는 태도는 다르다.
윈도우의 경우 \r\n 로 표현을 하고
리눅스에 경우는 \n 로만 표현한다.
따라서 윈도우에서 편집을 한 문서를 리눅스에서 받아 들일때는
\n만 개행으로 인식하기 때문에 \r은 해당 꺽쇠 표기(caret notation)인 ^M로 화면에 표시하게 된다.
이렇게 되면 리눅스에서 쉘스크립트를 실행 할때 에러가 발생하게 된다.
따라서 해당 문서에 대해서
아래와 같은 리눅스 명령을 실행 해야 한다.
1 | sed -i 's/\r$//' 스크립트.sh | cs |
sed : streamlined editor 의 약자로써 수정, 치환, 삭제, 글추가 등 편집기능이 있다.
정규식에서 s는 치환을 의미한다. \r을 치환한다는 뜻.
$는 행의 끝을 나타내는 것이다.
그래서 결론은 행의 끝에 \r의 문자 치환한다. 무엇으로 ?
맨 뒤에 // 사이에 아무 문자도 없기 때문에 !
마지막 결론은 행끝에 \r 문자를 빈값으로 치환한다는 뜻이다!
저 명령어를 리눅스에서 실행하고 나면 정상적으로 쉘스크립트를 실행할 수 있다.
1
반응형