
Makefile의 postfix 템플릿에 있는 변수를 바꾸고 싶습니다.
.PHONY: replace clean
export DOMAIN ?= home.lan
replace:
@echo $(DOMAIN)
envsubst < template > main.cf
cat out.test
내 템플릿 파일은 다음과 같습니다.
...snip..
$myorigin = ${DOMAIN}
$mydomain = $myorigin
make를 실행하면 ${DOMAIN} 변수를 바꾸고 $mydomain 변수와 $myorigin 키도 바꾸는 다음 출력이 제공됩니다.
= home.lan
=
과거에는 쉘 스크립트를 사용하여 다음과 같은 작업을 수행했습니다.
VARS='$API_URL'
envsubst "$VARS" < /etc/nginx/template > /etc/nginx/sites-enabled/default
그리고 $API_URL은 env 1로 올바르게 대체됩니다. 이 작업을 수행하려면 Makefile을 어떻게 사용합니까?
답변1
"$${DOMAIN}" 사용
.PHONY: replace
export DOMAIN ?= home.lan
replace:
envsubst '$${DOMAIN}' < template
달리기:
make replace
산출:
envsubst '${DOMAIN}' < template
...snip..
$myorigin = home.lan
$mydomain = $myorigin