Linux
如何在 Makefile 中用 envsubst 替換變數?
我想在 Makefiles 中替換我的後綴模板中的變數。
.PHONY: replace clean export DOMAIN ?= home.lan replace: @echo $(DOMAIN) envsubst < template > main.cf cat out.test
我的模板文件如下所示:
...snip.. $myorigin = ${DOMAIN} $mydomain = $myorigin
執行 make 給我這樣的輸出,替換 $ {DOMAIN} variable, but also replacing $ mydomain 變數以及 $myorigin key :
= home.lan =
過去使用 shell 腳本,我正在做這樣的事情:
VARS='$API_URL' envsubst "$VARS" < /etc/nginx/template > /etc/nginx/sites-enabled/default
並且 $API_URL 被正確替換為 env 之一。如何使用 Makefile 做到這一點?
使用“$${DOMAIN}”
.PHONY: replace export DOMAIN ?= home.lan replace: envsubst '$${DOMAIN}' < template
跑:
make replace
輸出:
envsubst '${DOMAIN}' < template ...snip.. $myorigin = home.lan $mydomain = $myorigin