「Shell」- 使用环境变量,替换在文件中的变量(envsubst) @20210401
问题描述
在部署服务时,脚本的部分内容是是动态生成的。我们可以使用 sed 进行替换,但是我们发现了更好的方法。
通过使用 envsubst 命令,可以替换在文件中的变量引用(类似于其他编程的模板引擎)。
该笔记将记录:如何使用 envsubst 替换文件中的变量,来动态生成文件内容的方法。
解决方案
对于如下文件模板:
# example.txt.template 了撒谎法拉速度飞书了士大夫了士大夫撒地方sadfasfdsa asfasdfasdfasfdasfd ${FOO} ${BAR} safdasfdadsfasfdafdasfdasdfasdfasfdadsfafdsaf
以及如下环境变量:
export FOO=abcd export BAR=1234
执行如下 Shell 命令:
envsubst < "example.txt.template" > "example.txt"
将输出如下文件及内容:
# example.txt.template 了撒谎法拉速度飞书了士大夫了士大夫撒地方sadfasfdsa asfasdfasdfasfdasfd abcd 1234 safdasfdadsfasfdafdasfdasdfasdfasfdadsfafdsaf
附加说明
命令 envsubst 属于 gettext 软件包。在 Debian 中,通过如下命令安装:apt-get install gettext-base
相关文章
BASH Shell内建命令:type
「Bash」- umask
参考文献
linux - How to substitute shell variables in complex text files - Stack Overflow
「Shell」- 使用环境变量,替换在文件中的变量(envsubst) @20210401相关推荐
- matlab删除mat中的个别变量,从.mat文件中删除变量
10GB的数据?由于MAT格式开销,更新多变量MAT文件可能会变得昂贵.考虑将数据拆分并将每个变量保存到不同的MAT文件中,必要时使用组织目录.即使您有一个方便的函数来从MAT文件中删除变量,它也将是 ...
- Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量
spring 中可以在import 的filename中使用变量 <import resource="camel-context-routes.${username}xml" ...
- 使用poi替换ppt文件内的变量参数,包含ppt和pptx格式
使用poi替换ppt文件内的变量参数,包含ppt和pptx格式 依赖的jar包 <dependencies><dependency><groupId>org.apa ...
- [转载]Linux批量替换不同文件中的相同字符串
转载自:http://bbs.phpchina.com/blog-191373-187668.html 方法1 这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 ...
- python docx 替换文字_查找并替换.docx文件中的文本 - Python
我一直在寻找一种方法来查找和替换docx文件中的文本而运气不佳 . 我已经尝试过docx模块而无法使用它 . 最后,我使用zipfile模块计算了下面描述的方法,并替换了docx存档中的documen ...
- 一种解析SAS程序文件中的变量的方法
笔者使用的SAS数据库查询平台,对接了一个以JSON格式的分级授权引擎,需将用户提交给数据库查询的SQL语句拼接在JSON入参里,但大量用户使用的数据库查询语句SQL超长(超过32767字节),这里, ...
- html img调用js,html调用js变量 如何在html中输出js文件中的变量
html页面代码中怎么调用js变量?html页面代码中怎么调用js变量,例如 在html代码中插入js代码: a=取浏览你把index1.js 中的onReady 去掉,把index1.js改成 fu ...
- linux 批量替换所有文件中包含的字符串
sed -i "s/原来字符串/新字符串/g" `grep 原来字符串 -rl .`格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 ...
- php替换文件中的数据库,批量替换php文件中的class,id的值
批量替换php文件中的class,id的值 $val="wqewq 替换成"wqewq //其实也就是在class,id值后面加上一个字符串 //我要替换的是文件里的.所以要从文件 ...
最新文章
- wsl遇到问题The repository ‘http://ppa.launchpad.net/ubuntu-desktop/ubuntu-make/ubuntu focal Release‘解决方法
- 世界不乏爱因斯坦,缺乏的适合他茁壮成长的环境
- Spark 1.1.1 Programing Guide
- Silverlight如何与JS相互调用
- linux常见的几种运行级,linux有几种运行级别
- uniapp 单元测试_单元测试不够验收测试凑,编写验收测试有什么技巧?
- GitHub 贡献第一的微软开源软件列表
- linux系统命令光标移动,Linux 命令行 光标移动技巧及利用grep和find查找文件内容...
- 信息学奥赛一本通(2016:【例4.1】for循环求和)
- 在SQL Server中配置索引创建内存设置的最佳实践
- C#使用NLOG System.TypeInitializationException,类型初始值设定项引发异常
- springboot事务管理
- 博士申请 | 澳大利亚麦考瑞大学吴佳教授招收图挖掘方向全奖博士生
- 2021-02-09 MATLAB 中计算 阶乘的函数
- java留言板源码_jsp留言板示例源码下载(入门级)
- Froala编辑器使用经历
- 使用YYLabel做文本竖向展示
- webpack重复打包同名依赖包
- 解决浏览器下载文件时中文文件名乱码的问题
- Leetcode 1921. 消灭怪物的最大数量-排序+贪心