Make:捕获shell命令的输出并同时返回代码

pyt*_*hor 4 shell makefile return-value

在make中,如果我想捕获shell命令的输出,我会做这样的事情

RESULT:=$(shell $(COMMAND))
Run Code Online (Sandbox Code Playgroud)

如果我想检查命令是否正确执行,我会这样做

RETURN_CODE := $(shell $(COMMAND); echo $$?)
Run Code Online (Sandbox Code Playgroud)

我怎么能同时做两个,即执行一次命令,存储输出,还检查返回码?

编辑 复制在这里,虽然他的解决方案不愉快: Makefile:输出和Exitcode变量?

Ale*_*ohn 5

关于什么

OUTPUT_WITH_RC := $(shell $(COMMAND); echo $$?)
RETURN_CODE := $(lastword $(OUTPUT_WITH_RC))
OUTPUT := $(subst $(RETURN_CODE)QQQQ,,$(OUTPUT_WITH_RC)QQQQ)
Run Code Online (Sandbox Code Playgroud)

如果你的命令失败,它可能会写入stderr; 你可以用它来捕捉一切:

OUTPUT_WITH_RC := $(shell $(COMMAND) 2>$1; echo $$?)
Run Code Online (Sandbox Code Playgroud)