make 컴파일 에러시 쉘 스크립트 중단

소개

리눅스에서 쉘 스크립트가 수행되는 도중 에러가 발생하면 멈추게 하고 싶었다.

$? 특수변수 사용

쉘 스크립트에는 $? 라는 예약된 특수변수가 있다.
이 특수변수는 이전에 실행된 자식 프로세스의 main() 함수 리턴값을 의미한다.
성공시 0, 실패시 non-zero 을 리턴한다.

이를 스크립트에 넣으면 다음과 같은 코드가 된다.

make 어쩌구 저쩌구
if [ $? -ne 0 ]; then
echo "Fail(make) ... $?"
exit 1
fi

makefile은 error가 나면 중지되겠지만,
make를 호출한 script는 make의 다음 문장을 계속 수행하겠지요.
bash의 경우 -e 옵션을 주면 error가 발생하면 종료하게 됩니다.
예를 들어 #!/bin/bash -e 를 script의 첫줄에 써주면 됩니다.

이 글은 카테고리: Linux에 포함되어 있습니다. 고유주소를 북마크하세요.

댓글 남기기