问题描述

在部署服务时,脚本的部分内容是是动态生成的。我们可以使用 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相关推荐

  1. matlab删除mat中的个别变量,从.mat文件中删除变量

    10GB的数据?由于MAT格式开销,更新多变量MAT文件可能会变得昂贵.考虑将数据拆分并将每个变量保存到不同的MAT文件中,必要时使用组织目录.即使您有一个方便的函数来从MAT文件中删除变量,它也将是 ...

  2. Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量

    spring 中可以在import 的filename中使用变量 <import resource="camel-context-routes.${username}xml" ...

  3. 使用poi替换ppt文件内的变量参数,包含ppt和pptx格式

    使用poi替换ppt文件内的变量参数,包含ppt和pptx格式 依赖的jar包 <dependencies><dependency><groupId>org.apa ...

  4. [转载]Linux批量替换不同文件中的相同字符串

    转载自:http://bbs.phpchina.com/blog-191373-187668.html 方法1   这两天在构建一个应用的使用用到了maven,由于project很大,足足有700多个 ...

  5. python docx 替换文字_查找并替换.docx文件中的文本 - Python

    我一直在寻找一种方法来查找和替换docx文件中的文本而运气不佳 . 我已经尝试过docx模块而无法使用它 . 最后,我使用zipfile模块计算了下面描述的方法,并替换了docx存档中的documen ...

  6. 一种解析SAS程序文件中的变量的方法

    笔者使用的SAS数据库查询平台,对接了一个以JSON格式的分级授权引擎,需将用户提交给数据库查询的SQL语句拼接在JSON入参里,但大量用户使用的数据库查询语句SQL超长(超过32767字节),这里, ...

  7. html img调用js,html调用js变量 如何在html中输出js文件中的变量

    html页面代码中怎么调用js变量?html页面代码中怎么调用js变量,例如 在html代码中插入js代码: a=取浏览你把index1.js 中的onReady 去掉,把index1.js改成 fu ...

  8. linux 批量替换所有文件中包含的字符串

    sed -i "s/原来字符串/新字符串/g" `grep 原来字符串 -rl .`格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 ...

  9. php替换文件中的数据库,批量替换php文件中的class,id的值

    批量替换php文件中的class,id的值 $val="wqewq 替换成"wqewq //其实也就是在class,id值后面加上一个字符串 //我要替换的是文件里的.所以要从文件 ...

最新文章

  1. wsl遇到问题The repository ‘http://ppa.launchpad.net/ubuntu-desktop/ubuntu-make/ubuntu focal Release‘解决方法
  2. 世界不乏爱因斯坦,缺乏的适合他茁壮成长的环境
  3. Spark 1.1.1 Programing Guide
  4. Silverlight如何与JS相互调用
  5. linux常见的几种运行级,linux有几种运行级别
  6. uniapp 单元测试_单元测试不够验收测试凑,编写验收测试有什么技巧?
  7. GitHub 贡献第一的微软开源软件列表
  8. linux系统命令光标移动,Linux 命令行 光标移动技巧及利用grep和find查找文件内容...
  9. 信息学奥赛一本通(2016:【例4.1】for循环求和)
  10. 在SQL Server中配置索引创建内存设置的最佳实践
  11. C#使用NLOG System.TypeInitializationException,类型初始值设定项引发异常
  12. springboot事务管理
  13. 博士申请 | 澳大利亚麦考瑞大学吴佳教授招收图挖掘方向全奖博士生
  14. 2021-02-09 MATLAB 中计算 阶乘的函数
  15. java留言板源码_jsp留言板示例源码下载(入门级)
  16. Froala编辑器使用经历
  17. 使用YYLabel做文本竖向展示
  18. webpack重复打包同名依赖包
  19. 解决浏览器下载文件时中文文件名乱码的问题
  20. Leetcode 1921. 消灭怪物的最大数量-排序+贪心

热门文章

  1. 大数据毕设 航空公司客户价值分析
  2. 【高速数字化仪应用案例系列】虹科数字化仪在通信领域的应用
  3. 【架构入门系列】从业务到平台的思维转变
  4. c语言git代码注释风格,git代码格式化上传
  5. 106短信群发如何在移动信息时代下实现精准营销
  6. 【JavaP6大纲】功能设计篇:秒杀场景设计
  7. ORCAD学习系列之二——元器件与线的放置
  8. 华硕z97不识别m2固态_华硕主板Z97-A无法识别intel M.2 NVME固态硬盘的解决方法
  9. iOS中跑马灯效果小结
  10. 江湖问题研究-- intent传递有没有大小限制,是多少?