Bash에서 모든 호출 스크립트를 종료하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2216200

  •  19-09-2019
  •  | 
  •  

문제

다음 스크립트가 있다고 가정 해 봅시다

금연 건강 증진 협회

echo in a
if test 1 -ne 2; then
        echo oops
        exit 1
fi

B.Sh

echo in b
./a.sh
echo in b 2

B.SH를 실행할 때 A.SH가 종료되면 종료하기를 원합니다. 어떻게해야합니까?

(현재 출력은입니다

in b
in a
oops
in b 2

그리고 그것은 내가 원하는 것이 아닙니다)

고마워요, 리카

도움이 되었습니까?

해결책

명령의 반환 상태 확인, 해당 변수는 $?. 또는 사용을 사용하여 단락시킬 수 있습니다 command || exit

다른 팁

echo in b
./a.sh && echo in b 2

이것은 기본적으로 첫 번째 스크립트가 0이 아닌 것을 종료하지 않는지 확인합니다. 그것이 사실이라면 두 번째 함수를 실행할 것입니다.

서브 쉘의 반환 상태를 명시 적으로 확인하지 않고 할 수있는 방법이 없다고 생각합니다.

# This will run b.sh, and if that exits with a non-zero status, we will also
# exit with that same status; otherwise, we continue.
./b.sh || echo $?
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top