GNU/Linux >> Tutoriels Linux >  >> Linux

Remplacer les variables d'environnement dans un fichier par leurs valeurs réelles ?

Existe-t-il un moyen simple de remplacer/évaluer les variables d'environnement dans un fichier ? Comme disons que j'ai un fichier config.xml qui contient :

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

…etc. Je veux remplacer $INSTANCE_ID dans le fichier avec la valeur de INSTANCE_ID variable d'environnement, $SERVICE_NAME avec la valeur du SERVICE_NAME env var. Je ne saurai pas a priori quelles variables d'environnement sont nécessaires (ou plutôt, je ne veux pas avoir à mettre à jour le script si quelqu'un ajoute une nouvelle variable d'environnement au fichier de configuration). Merci !

Réponse acceptée :

Vous pouvez utiliser envsubst (partie de gnu gettext ):

envsubst < infile

remplacera les variables d'environnement de votre fichier par leur valeur correspondante. Les noms de variables doivent être composés uniquement de caractères alphanumériques ou de traits de soulignement ASCII, ne pas commencer par un chiffre et être non vides ; sinon, une telle référence de variable est ignorée.

Pour remplacer uniquement certaines variables d'environnement, consultez cette question.


Linux
  1. Remplacer la nouvelle ligne par Nul ?

  2. Vérification des variables d'environnement

  3. Comment remplacer sed comme texte par python?

  4. commande tr - comment remplacer la chaîne \n par une nouvelle ligne réelle (\n)

  5. bash + lire les variables et les valeurs du fichier par le script bash

Remplacer du par de la poussière sous Linux

Comment utiliser les variables d'environnement avec les graphiques Helm

Variables d'environnement Linux

Comment définir des variables d'environnement Linux avec Ansible

Comment remplacer un fichier en jar par une ligne de commande sous Linux ?

Remplacer les variables d'environnement dans le texte si elles existent