소개
리눅스에서 쉘 스크립트가 수행되는 도중 에러가 발생하면 멈추게 하고 싶었다.
$? 특수변수 사용
쉘 스크립트에는 $? 라는 예약된 특수변수가 있다.
이 특수변수는 이전에 실행된 자식 프로세스의 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의 첫줄에 써주면 됩니다.