GNU/Linux >> Tutoriales Linux >  >> Linux

¿Reemplazar las variables de entorno en un archivo con sus valores reales?

¿Existe una manera fácil de sustituir/evaluar las variables de entorno en un archivo? Digamos que tengo un archivo config.xml que contiene:

<property>
    <name>instanceId</name>
    <value>$INSTANCE_ID</value>
</property>
<property>
    <name>rootPath</name>
    <value>/services/$SERVICE_NAME</value>
</property>

…etc. Quiero reemplazar $INSTANCE_ID en el archivo con el valor de INSTANCE_ID variable de entorno, $SERVICE_NAME con el valor de SERVICE_NAME var. No sabré a priori qué variables de entorno se necesitan (o más bien, no quiero tener que actualizar el script si alguien agrega una nueva variable de entorno al archivo de configuración). ¡Gracias!

Respuesta aceptada:

Podrías usar envsubst (parte de gnu gettext ):

envsubst < infile

reemplazará las variables de entorno en su archivo con su valor correspondiente. Los nombres de las variables deben consistir únicamente en caracteres ASCII alfanuméricos o de subrayado, no comenzar con un dígito y no estar vacíos; de lo contrario, dicha referencia de variable se ignora.

Para reemplazar solo ciertas variables de entorno, consulte esta pregunta.


Linux
  1. Mejora de la seguridad de Linux con el Entorno de detección de intrusos avanzado (AIDE)

  2. Lum:¿reemplazar valores comunes en dos archivos según la primera columna?

  3. Variables de entorno de Oracle Database y sus funciones

  4. Variables de entorno de usuario con "su" y "sudo" en Linux

  5. Advertencia con nftw

Reemplace du con polvo en Linux

Cómo usar variables de entorno con gráficos de Helm

¿Reemplazar nueva línea con Nul?

¿Hacer referencia a variables de entorno *en* /etc/environment?

Variables de entorno de Linux

Cómo configurar las variables de entorno de Linux con Ansible