make 컴파일 에러 발생시에 쉘 스크립트를 중단하는 방법을 알고 싶습니다. 아무리 구글링해도 안나와 답답해서 올려봅니다.
현재 처음 a라는 스크립트가 여러개의 sh 스크립트를 호출하고, sh 스크립트는 make 명령을 수행하고 있습니다.
원래는 makefile 에러 발생시 중지하는 것으로 알고 있는데, makefile이 한개가 아니다보니 발생하는 문제 같습니다.
답변 부탁드립니다.
쉘 스크립트에는 $? 라는 예약된 특수변수가 있습니다. 이것은 이전에 실행된 자식 프로세스의 main() 함수 리턴값을 의미하죠. 성공시 0, 실패시 non-zero 아시죠?
이를 스크립트에 넣으면 다음과 같은 코드가 됩니다.
make 어쩌구 저쩌구 if [ $? -ne 0 ]; then echo "Fail(make) ... $?" exit 1 fi
======================================== * The truth will set you free.
당신의 지식에 경의를 표합니다.
개처럼 일해서 사람이 되어보자
makefile은 error가 나면 중지되겠지만, make를 호출한 script는 make의 다음 문장을 계속 수행하겠지요.
bash의 경우 -e 옵션을 주면 error가 발생하면 종료하게 됩니다. 예를 들어 #!/bin/bash -e 를 script의 첫줄에 써주면 됩니다.
감사합니다. -e 로 한번에 해결되었네요!!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
쉘에서 make의 리턴 값을 체크하면 됨
쉘 스크립트에는 $? 라는 예약된 특수변수가 있습니다.
이것은 이전에 실행된 자식 프로세스의 main() 함수 리턴값을 의미하죠.
성공시 0, 실패시 non-zero 아시죠?
이를 스크립트에 넣으면 다음과 같은 코드가 됩니다.
========================================
* The truth will set you free.
감사합니다
당신의 지식에 경의를 표합니다.
개처럼 일해서 사람이 되어보자
makefile은 error가 나면
makefile은 error가 나면 중지되겠지만,
make를 호출한 script는 make의 다음 문장을 계속 수행하겠지요.
bash의 경우 -e 옵션을 주면 error가 발생하면 종료하게 됩니다.
예를 들어 #!/bin/bash -e 를 script의 첫줄에 써주면 됩니다.
감사합니다
당신의 지식에 경의를 표합니다.
개처럼 일해서 사람이 되어보자
감사합니다.
감사합니다. -e 로 한번에 해결되었네요!!
댓글 달기