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.