2012-08-22 3 views
0

OS 양식에서 유닉스 명령을 실행하는 방법 : 오라클 애플리케이션 서버 오라클 양식에서 쉘 스크립트를 실행하려면오라클은

10g에, UNIX Solaries을, 나는 다음과 같은 host('/bin/bash /u01/compile.sh')을 사용하고 잘 이제

작동, 내가 필요

host('mv form1.fmx FORM1.FMX') 같은 유닉스 명령 뭔가를 실행하지만 내가 compile.sh 쉘 스크립트에 명령 mv form1.fmx FORM1.FMX'를 추가하려고

을 작동하지 않습니다하지만 또한 나머지 린 있지만 작동하지 않습니다 쉘 스크립트의 ES 잘

답변

0

이 솔루션은 단지 MV 명령의 전체 경로를 추가하는 것입니다 실행 및 후속으로는, 잘 작동

/bin/mv /u01/oracle/runtime/test/form1.fmx /u01/oracle/runtime/test/FORM1.FMX 다른 사람이 같은 문제가 발생하는 경우

0

, 그 이유는 Forms 프로세스가 host() 명령을 실행하기위한 서브 프로세스를 생성하고 그 서브 프로세스가 부모 프로세스의 환경 변수를 상속받으며, 이는 default.env (또는 서버 구성에 정의 된 다른 env 파일)에서 파생됩니다. 해당 파일에 정의 된 PATH 변수가 있지만 일반적으로 /bin 또는 /usr/bin을 포함하지 않으므로 전체 경로를 지정하지 않으면 명령이 실행되지 않습니다.

해결책은 실행 된 스크립트 (export PATH=$PATH:... 통해) 또는 default.env 통해 올바른 PATH 변수를 설정하는 것입니다. 오라클을 알고 있기 때문에 default.env을 수정해도 문제가 발생하지 않을 것이라는 보장이 없기 때문에 스크립트에서 설정했습니다.