首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Makefiles中用envsubst替换变量?

如何在Makefiles中用envsubst替换变量?
EN

Unix & Linux用户
提问于 2020-05-19 09:05:29
回答 1查看 2K关注 0票数 1

我想在Makefiles中替换后缀模板中的变量。

代码语言:javascript
复制
.PHONY: replace clean
export DOMAIN ?= home.lan
replace:
   @echo $(DOMAIN)
   envsubst   < template > main.cf
   cat out.test

我的模板文件看起来如下:

代码语言:javascript
复制
...snip..
$myorigin = ${DOMAIN}
$mydomain = $myorigin

执行make给我这样的输出,替换${DOMAIN}变量,同时也替换$mydomain变量以及$myorigin键:

代码语言:javascript
复制
= home.lan
=

在过去的shell脚本中,我做了这样的事情:

代码语言:javascript
复制
VARS='$API_URL'
envsubst "$VARS" < /etc/nginx/template > /etc/nginx/sites-enabled/default

$API_URL代之以env。我怎么能用Makefiles做这件事?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-06-01 21:03:18

使用“$${域}”

代码语言:javascript
复制
.PHONY: replace
export DOMAIN ?= home.lan
replace:
    envsubst '${DOMAIN}' < template

跑:

代码语言:javascript
复制
make replace

产出:

代码语言:javascript
复制
envsubst '${DOMAIN}' < template
...snip..
$myorigin = home.lan
$mydomain = $myorigin
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/587621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档