2014-03-25 5 views
0

쉘 스크립트를 처음 사용하고 제 질문은 매우 기본적 일 수 있습니다.오류시 쉘 스크립트 실행을 중단합니다.

두 개의 scipt 파일을 호출하는 스크립트 (.sh 파일)가 있습니다. 이제 스크립트 1 실행시 오류 메시지가 나타납니다. 스크립트를 중단하고 스크립트 흐름을 완전히 종료하고 싶습니다. 다음 단계로 진행해서는 안됩니다.

나는 이것을 어떻게 얻을 수 있는지 말해 주시겠습니까?

편집

내 스크립가 내부적으로 다른 scriptC에 대한 호출을 스크립트 B에 전화를하고있다.

StopServer1.py 스크립트 (스크립트 B의 일부)의 실행에 실패하면 플로우 자체가 종료되어야하며 StopServer2 및 StopServer3에 도달해서는 안되며 제어도 스크립트 A로 이동해야하며 종료해야합니다.

set -e이 도움이되는지 알려주세요.

cd /usr/oracle/WSAutomate/ 
java weblogic.WLST /usr/oracle/StopServer1.py >> $logFileName 
java weblogic.WLST /usr/oracle/StopServer2.py >> $logFileName 
java weblogic.WLST /usr/oracle/StopServer3.py >> $logFileName 
+0

수동 또는 프로그래밍 방식으로 중단 하시겠습니까? – fedorqui

+0

어떻게 오류 메시지가 나타 납니까? 종료 상태 코드 또는 터미널 출력을 통해? – Jasper

+0

이 프로그래밍 방식으로 중단 싶습니다. – kumarb

답변

4

당신은 사용할 수 있습니다

set -e 

를 오류에 스크립트를 중단하십시오.

주요 스크립트 조각 :

#!/bin/bash  
set -e 

# Any failure in these script calls will make main script to exit immediately 
./script1 
./script2 
./script3 
+1

안녕하세요 Anubhva - 빠른 응답에 감사드립니다. 나는 여기에 의심이있다. 내 스크립트는 내부적으로 다른 스크립트를 호출하는 스크립트 B를 호출합니다. StopServer1.py 스크립트의 실행이 실패하면 여기에서 Flow가 종료되어야하며 StopServer2 및 StopServer3으로 오지 않아야합니다. set -e가 도움이 될지 알려주세요. CD는/usr/오라클/WSAutomate/ 자바 weblogic.WLST /usr/oracle/StopServer1.py >> $ LOGFILENAME 자바 weblogic.WLST /usr/oracle/StopServer2.py >> $ LOGFILENAME 자바 weblogic.WLST/usr/oracle/StopServer3.py >> $ logFileName – kumarb

+0

방금이 옵션을 테스트했고 일부는 작동하도록 확장했습니다. 내 스크립트가 중단되고 볼 수 있습니다 .. 내가 반향하거나 스크립트를 중단하기 전에 몇 가지 메시지를 인쇄 할 수 있습니다. 이것은 지원 분석가가 잘못 된 것을 이해하기위한 것입니다. – kumarb

+1

@kumarb 코멘트에 코드를 게시하지 마십시오. 제대로 읽을 수 없습니다. 대신 다른 문제인 경우 질문을 업데이트하거나 새로운 질문을하십시오. – fedorqui

0

당신은 운영자 &&이 방법 <execute_script1> && <execute_script2>을 사용할 수 있습니다.

script1을 실행하고 모든 것이 올바르게되면 스크립트 2를 실행합니다. 오류가 발생하면 script2가 실행되지 않습니다.

+0

고마워,하지만 이건 내 문제를 해결하지 .. ..! 빠른 응답을 주셔서 감사합니다. – kumarb

관련 문제