Bash에서 모든 호출 스크립트를 종료하는 방법은 무엇입니까?
문제
다음 스크립트가 있다고 가정 해 봅시다
금연 건강 증진 협회
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 $?
제휴하지 않습니다 StackOverflow