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

Make:同时捕获shell命令的输出和返回代码,shell,makefile,return-value,Shell,Makefile,Return Value,在make中,如果我想捕获shell命令的输出,我会这样做 RESULT:=$(shell $(COMMAND)) 如果我想检查命令是否正确执行,我会这样做 RETURN_CODE := $(shell $(COMMAND); echo $$?) 如何同时执行这两项操作,即执行一次命令,存储输出,同时检查返回代码 编辑 尽管他的解决方案并不令人满意,但在此重复: 怎么样 OUTPUT_WITH_RC := $(shell $(COMMAND); echo $$?) RETURN_CODE :

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

RESULT:=$(shell $(COMMAND))
如果我想检查命令是否正确执行,我会这样做

RETURN_CODE := $(shell $(COMMAND); echo $$?)
如何同时执行这两项操作,即执行一次命令,存储输出,同时检查返回代码

编辑 尽管他的解决方案并不令人满意,但在此重复:

怎么样

OUTPUT_WITH_RC := $(shell $(COMMAND); echo $$?)
RETURN_CODE := $(lastword $(OUTPUT_WITH_RC))
OUTPUT := $(subst $(RETURN_CODE)QQQQ,,$(OUTPUT_WITH_RC)QQQQ)
如果您的命令失败,它可能会写入stderr;您可以使用此功能捕获所有内容:

OUTPUT_WITH_RC := $(shell $(COMMAND) 2>$1; echo $$?)

我不知道lastword,这肯定比链接答案中使用的sed更好。有没有一种不需要返回代码就可以得到输出的好方法;使用无法在输出中显示的内容,而不是
QQQ