GNU/Linux >> Znalost Linux >  >> Linux

Nahradit proměnné prostředí v souboru jejich skutečnými hodnotami?

Existuje snadný způsob, jak nahradit/vyhodnotit proměnné prostředí v souboru? Řekněme, že mám soubor config.xml který obsahuje:

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

…atd. Chci nahradit $INSTANCE_ID v souboru s hodnotou INSTANCE_ID proměnná prostředí, $SERVICE_NAME s hodnotou SERVICE_NAME env var. Nebudu a priori vědět, které proměnné prostředí jsou potřeba (nebo spíše nechci aktualizovat skript, pokud někdo přidá novou proměnnou prostředí do konfiguračního souboru). Díky!

Přijatá odpověď:

Můžete použít envsubst (součást gnu gettext ):

envsubst < infile

nahradí proměnné prostředí ve vašem souboru jejich odpovídajícími hodnotami. Názvy proměnných se musí skládat výhradně z alfanumerických znaků nebo znaků ASCII, nesmí začínat číslicí a nesmí být prázdné; jinak je takový odkaz na proměnnou ignorován.

Chcete-li nahradit pouze určité proměnné prostředí, přečtěte si tuto otázku.


Linux
  1. Lum – nahradit běžné hodnoty ve dvou souborech podle prvního sloupce?

  2. Odkazování na proměnné prostředí *v* /etc/environment?

  3. Proměnné uživatelského prostředí S „su“ a „sudo“ v Linuxu

  1. Upozornění s nftw

  2. Nahrazení proměnných prostředí v souboru vlastností

  3. Jak nastavit proměnné prostředí Linuxu pomocí Ansible

  1. Proměnné prostředí databáze Oracle a jejich funkce

  2. Jak nahradit soubor v jar příkazovým řádkem v linuxu?

  3. nahradit řádky v jednom souboru řádky v jiném číslem řádku