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

时间:2014-07-09 15:35:12

标签: shell makefile return-value

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

RESULT:=$(shell $(COMMAND))

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

RETURN_CODE := $(shell $(COMMAND); echo $$?)

如何同时执行这两项操作,即执行一次命令,存储输出,还检查返回码?

修改 尽管他的解决方案并不令人满 Makefile: Output and Exitcode to variable?

1 个答案:

答案 0 :(得分:5)

怎么样?
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 $$?)