Makefile 在Make中,如何使配方仅在特定退出代码上失败?

Makefile 在Make中,如何使配方仅在特定退出代码上失败?,makefile,grep,continuous-integration,Makefile,Grep,Continuous Integration,我的Makefile中有一个配方,返回0、1或2。我希望配方成功,如果它的命令返回1,并且在所有其他情况下失败。我可以使用以反转状态,但我希望在配方返回2和0时失败 我的特定用例:我将拼写检查作为构建过程的一部分。到目前为止,我能做的最好的事情是: .md.html: ! $(ASPELL) list -p $(DICT_FILE) < $< | $(GREP) -nFf - $< $(PANDOC) -o $@ $< .md.html: ! $(ASP

我的Makefile中有一个配方,返回0、1或2。我希望配方成功,如果它的命令返回1,并且在所有其他情况下失败。我可以使用
以反转状态,但我希望在配方返回2和0时失败

我的特定用例:我将拼写检查作为构建过程的一部分。到目前为止,我能做的最好的事情是:

.md.html:
    ! $(ASPELL) list -p $(DICT_FILE) < $< | $(GREP) -nFf - $<
    $(PANDOC) -o $@ $<
.md.html:
! $(ASPELL)列表-p$(DICT_文件)<$<|$(GREP)-nFf-$<
$(潘多克)-o$@$<
aspell(1)
生成一个它不理解的单词列表,并将其传送到
grep(1)
grep(1)
使用用户友好的行号打印它们,以便作者在markdown source中轻松找到
aspell(1)
始终返回0,无论匹配项如何<代码>grep(1)的手册页上写着:

如果选择了行,则退出状态为0;如果未选择行,则退出状态为1;如果发生错误,则退出状态为2


您必须使用shell语法自己进行检查。像这样:

.md.html:
        $(ASPELL) list -p $(DICT_FILE) < $< | $(GREP) -nFf - $<; [ $$? -eq 1 ]
        $(PANDOC) -o $@ $<
.md.html:

$(ASPELL)list-p$(DICT_FILE)<$<<|$(GREP)-nFf-$您必须使用shell语法自己进行检查。像这样:

.md.html:
        $(ASPELL) list -p $(DICT_FILE) < $< | $(GREP) -nFf - $<; [ $$? -eq 1 ]
        $(PANDOC) -o $@ $<
.md.html:

$(ASPELL)list-p$(DICT_文件)<$<|$(GREP)-nFf-$这太聪明了!那太聪明了!