다음 명령이 있습니다.
/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을 추가해 보셨습니까?).