我正在尝试在Makefile中的命令替换内进行变量插值。
我有此代码:
{"extension_message_name":"This is a test"}
但是,代码失败了,因为setup:
mkdir -p data_all ; \
for i in $(shell jq -r 'keys | @tsv' assets.json) ; do \
git_url=$(shell jq -r ".$$i" assets.json) ; \
git clone $$git_url data_all/$$i ; \
done
不在设置git_url的“ shell”行中扩展。
如何在设置git_url的“ shell”行中插入变量$ i?
答案 0 :(得分:1)
您混合了make函数($(shell ...)
)和真正的shell构造。编写配方时,最简单的方法是先在普通外壳中编写它:
mkdir -p data_all ; \
for i in $( jq -r 'keys | @tsv' assets.json ) ; do \
git_url=$( jq -r ".$i" assets.json ) ; \
git clone $git_url data_all/$i ; \
done
然后通过make转义不必要的$
扩展名:
mkdir -p data_all ; \
for i in $$( jq -r 'keys | @tsv' assets.json ) ; do \
git_url=$$( jq -r ".$$i" assets.json ) ; \
git clone $$git_url data_all/$$i ; \
done