我正在寻找一种方法来获取命令的输出和退出代码到makefile中的变量。Makefile:如何将一个命令的输出和退出代码分配给一个变量?
Basicly我想这样的:(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)
另一种解决方案,也很复杂,但使用较少的外部进程可以在这里找到:http://stackoverflow.com/a/40710111/1905491你不需要'eval's有BTW。用':='来分析就足够了。 – stefanct
使用shell来拆分组合结果比仅运行两个单独的命令更加可怕。为什么你会期望'whoami'返回一个错误? – tripleee
'whoami'只是一个想象编译器命令的例子,你不想运行两次编译器命令。 – Eun