envsubst
命令是 Linux 下的一个命令,常用与将变量传递到文件中,十分好用。
在没有了解到这个命令之前,我渲染配置时大多数会用sed
或echo
来把环境变量中的值渲染到配置里。这种多个key的配置就得写多个sed
有点 🤤🤤 的感觉。。。
使用样例
准备一个模板文件,例如文件名context.template
(当然文件名是自定义的) 里面的NGINX_PORT
和NGINX_HOST
则是我们要渲染替换的值。
$ cat context.template
server {
listen ${NGINX_PORT};
listen [::]:${NGINX_PORT};
server_name ${NGINX_HOST};
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
准备key的值:
$ export NGINX_PORT='80'
$ export NGINX_HOST='baidu.com'
然后执行命令,进行渲染配置到context.conf
文件中
$ envsubst < context.template > context.conf
查看文件内容:
$ cat context.conf
server {
listen 80;
listen [::]:80;
server_name baidu.com;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
One comment
怎么收藏这篇文章?