윈도우즈에서 파일을 에디팅후 유닉스로 옮길 경우 ^M 때문에 에러가 발생하는 경우가 있다.

특히나 sh 프로그램에서 변수값 입력후 뒤에 ^M이 붙어 에러가 발생한다. 

예를들자면

test.sh 이 있다.
이 쉘의 내용은 java -classpath /test/test.jar: Test 20110428 이라고 한다면
이것을 윈도우에서 에디팅 해서 유닉스에 넣어 vi 에디터로 볼경우
java -classpath /test/test.jar: Test 20110428^M 이렇게 나온다
그래서 변수값이 20110427^M으로 되여 문제가 발생한다.

이를 해결하는 방법은
1. sh을 에디팅할때 유닉스 vi로 첨부터 에디팅 한다.
2. 부득이하게 윈도우에서 했을 경우엔 vi test.sh 을 한후 :s /^M//g 라고 치면 ^M이 전부 공백으로 바뀐다.
 - :s 는 vi의 search 명령이다.
 - /a/b 는  a를 b로 바꾸라는건데 여기선 /^M/ 하였으니 ^M을 공백으로 바꾸라는 의미다
 - /g는 글로벌 옵션이다 sh 프로그램 전체를 뒤져서 전부 바꾸라는 의미가 된다.
 - 여기서 ^M은 키보드에 있는 ^와 M이 아니라 ctrl+v+m 이다. ^ 모양은 유닉스에서 ctrl+v 로 만들어 준다. 
Posted by Duritz
삭제 :  regsvr32 /u [dll or ocx file path]
등록 :  regsvr32 [dll or ocx file path]

'Program... > Develop Story' 카테고리의 다른 글

윈도우즈 -> 유닉스 파일 이동시 ^M 처리  (0) 2011.04.28
Posted by Duritz
이전버튼 1 이전버튼

공지사항

Yesterday
Today
Total
05-04 15:59

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31