나는 성공적으로 0이 아닌 값을 반환하고 실패 할 때 다른 0이 아닌 값을 반환하는 프로그램을 실행하는 Makefile을 가지고있다. 명령 앞에 -를 붙임으로써 종료 상태를 무시할 수 있다는 것을 알고 있습니다. 그러나 명령이 성공했는지 알아야하기 때문에 작동하지 않습니다.Makefile 쉘 호출의 종료 상태를 어떻게 확인합니까?
답변
당신은 마지막 반환 값을 포함하는 쉘 $?
변수를 사용하여, 동일한 메이크 라인의 두 번째 명령에 반환 값을 테스트 할 수 있습니다. 명령으로 명령을 대체
test:
/bin/false ; /usr/bin/test "$$?" -eq 1 # <-- make does not stop here
/bin/echo "Continues ..."
/bin/false # <-- make stops here
도구가 작동하지 않는 방식에 따라 출력 파일이 있는지 확인할 수 있습니다. 뭔가 같은 :
@if test ! -f $(FILE); then exit 2; fi
사용하여 명령과
command || [ $$? -eq v ]
,과와 V : 분명히 컴파일을 중지 할 것 false
명령을 예를 들어
'$?'는 make 변수 정의에 따라 해석되기 때문에 이것은 makefile에서 그대로 작동하지 않습니다. 대신에'$$? '를 사용해야합니다. –
고정; 수정 해줘서 고마워. – reinierpost
Didier Trosset의 대답과 비교하면,이 명령은 상태가 0 인 명령이 반환 될 때도 전달됩니다 (내 경우에는 내가 원했던 것이 아닙니다)! –
- 1. Azure는 WorkerRole의 상태를 어떻게 확인합니까?
- 2. Gmail은 실시간으로 gtalk 상태를 어떻게 확인합니까?
- 3. 쉘 스크립트 : Solaris에서 실패한 백그라운드 자식 프로세스의 종료 상태를 얻습니다.
- 4. 쉘 스크립트에서 프로세스 종료
- 5. ASP.NET은 장기 실행 스레드에서 스레드 상태를 확인합니까?
- 6. shell_exec에서 출력하고 종료 상태를 받고()
- 7. 응용 프로그램의 구성을 어떻게 확인합니까?
- 8. 페이지간에 상태를 어떻게 복원합니까?
- 9. 종료 할 때 활동 상태를 어떻게 저장합니까? Android
- 10. 변수 설정을 위해 makefile 내부에서 외부 쉘 스크립트 호출하기
- 11. 특정 서비스의 상태는 어떻게 확인합니까?
- 12. OAuth 요청을 어떻게 확인합니까?
- 13. PHP에서 호스트를 어떻게 확인합니까?
- 14. SQLite3 구문을 어떻게 확인합니까?
- 15. 네트워크 연결을 어떻게 확인합니까?
- 16. 파일 형식을 어떻게 확인합니까?
- 17. 는 어떻게 확인합니까 1
- 18. 병합이 필요한지 어떻게 확인합니까?
- 19. IsolatedStorageFile이 있는지 어떻게 확인합니까?
- 20. PrintDialog.AllowCurrentPage의 값을 어떻게 확인합니까?
- 21. 302 응답을 어떻게 확인합니까?
- 22. AJAX는 어떻게 사용자를 확인합니까?
- 23. 파일이 업로드되었는지 어떻게 확인합니까?
- 24. 어떻게 기본값을 확인합니까?
- 25. 링크가 방문했는지 어떻게 확인합니까?
- 26. Linux 쉘 : 키보드 버튼 상태를 폴링
- 27. collect2 : ld가 종료 상태를 1 개 반환했습니다.
- 28. 쉘 스크립트 실행을 조건부로 종료/중단
- 29. 일단 종료 된 응용 프로그램의 상태를 유지하십시오.
- 30. -lmysqlclient collect2 : ld가 1 종료 상태를 반환했습니다
첫 번째 단계는 성공이 아닌 0을 반환 프로그램의 메인테이너에 버그 리포트를 제출하는 것입니다. –
음,이 프로그램은 상용 공급 업체의 프로그램이므로 프로그램의 동작이 변경 될지는 의문입니다. – trondd
@trondd GNU make는 상업적이지 않은 GNU 프로젝트에 의해 개발되었습니다. 그것은 반대입니다 : 그것은 자유 소프트웨어입니다. – no92