我用这个问题: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中得到这个命令呢?
发布于 2022-04-25 15:50:36
在这里..。
BOARD=arduino:megaavr:nona4809 PORT=$(shell arduino-cli board list \ grep $$BOARD $$BOARD awk '{ print $$1;}')
..。正确地将$1转义为$$1,将前者传递给shell。但是,您不希望将$BOARD传递到shell本身。相反,您希望make扩展这一项:
BOARD=arduino:megaavr:nona4809
PORT=$(shell arduino-cli board list | grep $(BOARD) | awk '{ print $$1; }')https://stackoverflow.com/questions/72002079
复制相似问题