2010-12-28 3 views
3

I가 출력/표준 잘못을 아래와 같이 표준 리디렉션 스크립트 :콘 셸 (KSH) 재

SCRIPTS=/test/scripts 
LOG=/test/log 
echo $SCRIPTS 
echo $LOG 
$SCRIPTS/dmm_algo_ofac_daily_sched.ksh >> $LOG/test12.log 2>&1 

이 스크립트는 내가 아래를 교체 할 경우 $SCRIPTS

$LOG을 확장 할 수 없습니다를 :

/test/scripts/daily_sched.ksh >> /test/log/test12.log 2>&1 

그것은 다음과 같이 불평 :

: bad file unit numberd/test.ksh: line 33: 1 

또한 스크립트가 저장된 디렉토리에서 스크립트를 호출 할 수 없습니다. 내가한다면

./test.ksh 그것은 파일을 찾을 수 없다는 에러 메시지를냅니다. 그래도 ksh /test/sched/test.ksh을 통해 실행할 수 있습니다.

누군가 나를 도와 줄 수 있습니까? 미리 감사드립니다.

+0

ksh의 버전 및 플랫폼은 무엇입니까? Linux에서 ksh93 또는 pdksh를 사용하여 스크립트에 아무런 문제가 없습니다. –

+0

k 쉘 버전은 ksh93 – sab

답변

4

가 나는 문제는 당신이 점점 오류 메시지로 인해 캐리지 리턴 그 자체를 덮어 쓰기한다 DOS/윈도우 라인 엔딩

인 것이 거의 확실 해요. dos2unix을 사용하여 파일을 수정할 수 있습니다.

+0

예, 이것은 종종 문제가 될 수 있습니다. od -c를 사용하여 \ r을 확인하십시오. – Xailor

+0

그게 다 감사합니다. – sab

0

근본 원인이 리디렉션과 관련이 있다고 생각합니다.

/test/sched/test.ksh 또는 /test/scripts/test.ksh에 표시 한 스크립트가 있습니까? 확실한가요?

+0

입니다. /test/sched/test.ksh입니다. 또한 k 쉘 버전은 ksh93입니다. – sab

1

명령 줄에서 인터프리터의 이름을 지정하지 않고 직접 호출하려면 첫 번째 줄에 #!/bin/ksh 마술을 추가하십시오.

관련 문제