我正在尋找一種方法來獲取命令的輸出和退出代碼到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