在make中,如果我想捕获shell命令的输出,我会做这样的事情
RESULT:=$(shell $(COMMAND))
如果我想检查命令是否正确执行,我会这样做
RETURN_CODE := $(shell $(COMMAND); echo $$?)
如何同时执行这两项操作,即执行一次命令,存储输出,还检查返回码?
修改 尽管他的解决方案并不令人满 Makefile: Output and Exitcode to variable?
答案 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 $$?)