Bash: 오류 응답에 대해 여러 작업 수행

Bash: 오류 응답에 대해 여러 작업 수행

다음 명령이 있습니다.

/path/to/script.sh && echo "done."; exit 0 || echo "error."; exit 1

내가 원하는 것은 스크립트가 성공하면 "완료"를 에코하고 0으로 종료하고, 성공하지 못하면 "오류"를 에코하고 1로 종료하는 것입니다. 하지만 작동 방식이 아니기 때문에 우선순위를 놓치게 됩니다.

이 문제를 어떻게 처리합니까?

===수정합니다. ===

{}를 사용해도 원하는 대로 작동하지 않습니다. ./true.sh && { echo done.; ./error.sh; } || { echo error; echo error1; 그 이후의 모든 오류는 제대로 작동하지 않습니다. ps: true는 0을 반환하고 error는 1을 반환합니다.

답변1

if /path/to/script.sh; then
    echo "done."
    exit 0
else
    echo "error."
    exit 1
fi

또는 계속해서 다음과 같이 말하세요.

/path/to/script.sh && echo done. || { echo error. ; exit 1; }

편집 내용에 따르면 A && { B1 ; B2 ; } || { C1 ; C2 ; }기호가 작동하지 않습니다. B2가 1을 반환한다고 가정하면 원래 게시물이 말한 것과 다릅니다(종료 0은 어디에 있습니까? 1을 추가해 보셨습니까?).

관련 정보