GNU/Linux >> Linux Esercitazione >  >> Linux

Sostituire le variabili d'ambiente in un file con i loro valori effettivi?

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.


Linux
  1. Miglioramento della sicurezza Linux con Advanced Intrusion Detection Environment (AIDE)

  2. Controllo delle variabili di ambiente

  3. Come sostituire il testo come sed con python?

  4. Come impostare le variabili di ambiente Linux con Ansible

  5. Come sostituire un file in jar con la riga di comando in Linux?

Sostituisci du con polvere su Linux

Come utilizzare le variabili d'ambiente con i grafici Helm

Variabili d'ambiente Linux

bash + leggi variabili e valori dal file tramite lo script bash

Sostituisci le variabili di ambiente nel testo se esistono

sostituire le righe in un file con le righe in un altro per numero di riga