我正在使用這個問題:Assign a makefile variable value to a bash command result? 嘗試解決我的問題,但它似乎不起作用。
我有一個單線來獲取連接的 Arduino 的當前埠,我需要Makefile將其作為引數:
[bf@localhost GameCode]$ arduino-cli board list | grep arduino:megaavr:nona4809 | awk '{ print $1; }'
/dev/ttyACM0
如您所見,這很好用。但現在我想在我的Makefile:
BOARD=arduino:megaavr:nona4809
PORT=$(shell arduino-cli board list | grep $$BOARD | awk '{ print $$1; }')
OUTPUT=mycode.hex
program: $(OUTPUT)
eeprom-program -f $(OUTPUT) -p $(PORT)
但是,$(PORT)似乎完全是空的。我知道我可以用 shell 腳本解決這個問題,但由于這只是一行,我不想用小腳本弄亂我的目錄。
如何在我的 Makefile 中獲取該命令?
uj5u.com熱心網友回復:
這里 ...
BOARD=arduino:megaavr:nona4809 PORT=$(shell arduino-cli board list | grep $$BOARD | awk '{ print $$1; }')
...您正確地逃脫$1了$$1將前者傳遞給外殼的方式。但是您不想這樣傳遞$BOARD到外殼。相反,你想make擴展那個:
BOARD=arduino:megaavr:nona4809
PORT=$(shell arduino-cli board list | grep $(BOARD) | awk '{ print $$1; }')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/465462.html
