큰 명령줄을 두 줄로 나누어 스크립트에서 단일 줄로 실행하는 방법

큰 명령줄을 두 줄로 나누어 스크립트에서 단일 줄로 실행하는 방법

저는 IBM z/OS390을 사용하고 있으며 OMVS 셸을 사용하고 있습니다. "vi"가 전혀 설치되어 있지 않아 "oedit"를 사용합니다. OMVS 쉘에서 직접 app.jar을 초기화하려고 하면 완벽하게 작동합니다. 즉, java 디렉토리에 도달하고 아래 두 명령을 사용하여 거기에서 애플리케이션을 시작하면 100% 작동합니다.

cd /WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin
./java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 

OEDIT를 통해 스크립트 파일을 만들고 두 줄을 추가했습니다. 두 번째는 두 줄로 나뉩니다. 안타깝게도 런타임 시 두 번째 명령줄이 두 개의 다른 줄로 처리되었기 때문에 이 오류가 발생하는 것 같습니다.

$ ./script_boot_app
Error: Could not find or load main class com.my_comapny_witt_entire_name.
/myMain: ./script_boot_app 3: FSUM7351 not found

경로와 Java 패키지 이름이 한 줄에 들어갈 만큼 작은 경우에는 이런 일이 발생하지 않을 수 있습니다. 그래서 내 질문은: OEDIT를 사용하고 셸에서 직접 명령을 실행할 때처럼 여러 줄이 한 줄로 처리되도록 어떻게 보장할 수 있습니까? OMVS 셸에 직접 입력하여 한 줄의 끝에 도달하면 자연스럽게 아래 줄을 계속해서 단일 명령줄로 실행하게 됩니다. OEDIT 도구에서 생성된 스크립트에서 동일한 작업을 수행하려면 어떻게 해야 합니까?

답변1

요구되어서는 안됩니다 cd. 다음 줄은 동일한 작업을 수행해야 합니다.

/WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin/java -cp \
    /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 

백슬래시 연속을 사용하여 명령줄을 두 줄로 분할했습니다. 이 작업이 계속 진행되려면 백슬래시와 줄 바꿈 사이에 문자가 있어서는 안 됩니다.

또 다른 방법은 Java를 포함하는 디렉토리 앞에 PATH 변수에 Java bin 디렉토리를 추가하는 것입니다. 이 명령은 which java어떤 Java가 사용될지 알려줍니다.

PATH=/WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin:$PATH
java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain 

답변2

첫째, 항상 종료 상태를 확인하는 것이 가장 좋습니다 cd.

cd /WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin && ./java -cp /usr/my.jar com/com.my_comapny_witt_entire_name/myMain

cmd1 && cmd2cmd2성공하면 를 실행합니다 cmd1.

이제 귀하의 문제는 스크립트가 OMVS 셸에서 해석되지 않는다는 것입니다(POSIX 셸이므로 이 두 줄을 해석할 수 있어야 합니다).

comapny또는 물론 명령을 찾을 때 철자 오류( , witt) 때문에 명령을 찾을 수도 있습니다 java. 즉, 현재 디렉터리와 위치를 찾는다는 뜻입니다./WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin

답변3

그냥 백슬래시

cd /WebSphere/was85/mycel/mynode/AppServer/java_1.7_64/bin ./java -cp \
/usr/my.jar com/com.my_comapny_witt_entire_name/myMain

관련 정보