2012-05-14 3 views
2

쉘 스크립트가 RedHat OS로 작성되었습니다. Windows 환경에서이 스크립트를 실행해야합니다.Windows에서 Linux로 작성된 쉘 스크립트 실행

그래서 cygwin을 사용하여 Windows에서 스크립트를 실행했습니다. 내가 레드햇 OS에 retured되지 않은 오류 다음은 나에게주는

sh housekeeper.sh 

를 사용하여 스크립트를 실행할 때

는 그러나

line 12: $'\r': command not found 

하지만 내 스크립트의 줄 번호 (12)은 비어

08 # 
    09 ###################################################################### 
    10 #### PARAMETERS TO SET BEGIN 
    11 ###################################################################### 
    12 
    13 # archive setttings 
    14 ARCHIVE_USER=abc      # archive storage user name (default) 
    15 ARCHIVE_GROUP=app      # archive storage user group (default) 
    16 ARCHIVE_PATH=/test/file    # archive storage directory (default) 
    17 ARCHIVE_DELAY=+8 

아무나 나에게 여기서 스크립트 또는 cygwin에 무슨 문제가 있는지 말해 줄 수 있습니다. 다음이

답변

5

대부분의 경우 Cygwin에서 sh는 UNIX 라인 분리기 (즉 \n)를 기대하지만, 대신을 찾아 내고 실행 해이 파일의 Windows에 도움

+1

스크립트의 어딘가에서 상당한 캐리지 리턴이 발생하면 tr :'sed 's/\ r $ //''보다 안전합니다. –

1

실행 dos2unix 명령에 미리

감사 Windows 줄 구분 기호 \r\n, 따라서 명령 인 것처럼 \r을 실행하려고합니다. Windows 기반 텍스트 편집기에서이 스크립트를 편집하면 쉽게 이러한 일이 발생할 수 있습니다. 명령 dos2unix 당신이 그것을 사용할 수 있습니다, 또는 tr\r의 제거해야하는 경우

는 : -하지 'unix2dos`

tr -d '\r' <old.sh> new.sh 
+0

을'dos2unix'이 필요하다 명령입니다. –

+0

oh mea culpa Dennis – Satya

관련 문제