Makefile:如何将命令的输出和退出代码分配给变量?

时间:2012-06-22 13:26:35

标签: makefile

我正在寻找一种方法来获取命令的输出和退出代码到makefile中的变量。

基本上我想要这个:(bash)

output=$(whoami)
returnval=$?
echo "OUT:"
echo $output
echo "RET:"
echo $returnval

在makefile中

注意:应该在规则部分工作

由于

编辑:已解决

$(eval OUTPUT_RC="$(shell whoami;echo $$?)")
$(eval OUTPUT="$(shell echo $(OUTPUT_RC) | sed -e "s/^\(.*\)\(.\{2\}\)$$/\1/")")
$(eval RC="$(shell echo $(OUTPUT_RC) | sed -e "s/^.*\(.\)$$/\1/")")
echo $(OUTPUT)
echo $(RC)

2 个答案:

答案 0 :(得分:0)

如果您打算使用eval,请直接打印eval内容。

$(eval $(shell echo OUTPUT_RC=`whoami`; echo $$?))
OUTPUT=$(word 1,$(OUTPUT_RC))
RC=$(word 2,$(OUTPUT_RC))

答案 1 :(得分:-2)

GNU make提供shell函数,如:

OUTPUT=$(shell whoami)
OUTPUT_RC=$(shell whoami; echo $$?)