Esiste un modo semplice per sostituire/valutare le variabili di ambiente in un file? Ad esempio, ho un file config.xml
che contiene:
<property>
<name>instanceId</name>
<value>$INSTANCE_ID</value>
</property>
<property>
<name>rootPath</name>
<value>/services/$SERVICE_NAME</value>
</property>
…eccetera. Voglio sostituire $INSTANCE_ID
nel file con il valore di INSTANCE_ID
variabile di ambiente, $SERVICE_NAME
con il valore del SERVICE_NAME
env var. Non saprò a priori quali var di ambiente sono necessarie (o meglio, non voglio dover aggiornare lo script se qualcuno aggiunge una nuova variabile di ambiente al file di configurazione). Grazie!
Risposta accettata:
Potresti usare envsubst
(parte di gnu gettext
):
envsubst < infile
sostituirà le variabili di ambiente nel file con il valore corrispondente. I nomi delle variabili devono essere costituiti esclusivamente da caratteri ASCII alfanumerici o underscore, non iniziare con una cifra e non essere vuoti; altrimenti tale riferimento a una variabile viene ignorato.
Per sostituire solo alcune variabili di ambiente, consulta questa domanda.