envsubst缩写来自于environmentvariablesubstitution,即环境变量替换,是一个用于替换shell环境变量的工具。
它可以读取输入并在其中查找环境变量,然后将这些环境变量替换为其对应的值,最后输出结果。在Linux和Unix操作系统上默认自带。
通过这个命令,我们可以配置一些模板文件,然后通过定义环境变量的方式,将变量传递到模板文件中,从而动态地生成配置文件。在linux运维里,属于比较高阶但是很实用的一个命令。
在正常操作模式下,标准输入被复制到标准输出,对$VARIABLE或${VARIABLE}形式的环境变量的引用被替换为相应的值。如果给出了SHELL-FORMAT,则仅替换那些在SHELL-FORMAT中引用的环境变量;否则,标准输入中出现的所有环境变量引用都将被替换。
使用--variables时,标准输入被忽略,输出由SHELL-FORMAT中引用的环境变量组成,每行一个。
首先,假设我有一个模板文件如下:
$catenvsubst-template.yamlapiVersion:v1kind:Deploymetadata:name:$namenamespace:$ns
THE END