Estoy tratando de realizar la sustitución de variables de entorno envsubst, pero solo quiero reemplazar variables específicas.
De los documentos, debería poder decir envsubstque solo reemplace ciertas variables, pero no puedo hacerlo.
Por ejemplo, si tengo un archivo que contiene:
VAR_1=${VAR_1}
VAR_2=${VAR_2}
¿Cómo debo ejecutar envsubstpara que solo reemplace la referencia ${VAR_1}?
shell
environment-variables
João Angelo
fuente
fuente

Por la página del manual:
Donde las cadenas SHELL-FORMAT son "cadenas con referencias a variables de shell en la forma
$variableo${variable}[...] Los nombres de las variables deben consistir únicamente en caracteres ASCII alfanuméricos o de subrayado, no comenzar con un dígito y no ser vacíos; de lo contrario, dicha referencia de variable es ignorado ". .Por lo tanto, uno tiene que pasar los nombres de las variables respectivas
envsubsten una cadena de formato de shell (obviamente, deben escaparse / citarse para que se pasen literalmente aenvsubst). Ejemplo:archivo de entrada, por ejemplo
infile:y algunos valores como
luego corriendo
o
o
salidas
O, si prefiere la barra invertida:
produce
fuente
envsubst "$(printf '${%s} ' ${!PREFIX*})" < infileSUBST_VARSentonces:envsubst "$(printf '${%s} ' $SUBST_VARS)" < infile