Apakah ada cara mudah untuk mengganti/mengevaluasi variabel lingkungan dalam file? Seperti misalkan saya memiliki file config.xml
yang berisi:
<property>
<name>instanceId</name>
<value>$INSTANCE_ID</value>
</property>
<property>
<name>rootPath</name>
<value>/services/$SERVICE_NAME</value>
</property>
…dll. Saya ingin mengganti $INSTANCE_ID
dalam file dengan nilai INSTANCE_ID
variabel lingkungan, $SERVICE_NAME
dengan nilai SERVICE_NAME
env var. Saya tidak akan tahu apriori var lingkungan mana yang diperlukan (atau lebih tepatnya, saya tidak ingin memperbarui skrip jika seseorang menambahkan variabel lingkungan baru ke file konfigurasi). Terima kasih!
Jawaban yang Diterima:
Anda dapat menggunakan envsubst
(bagian dari gnu gettext
):
envsubst < infile
akan mengganti variabel lingkungan di file Anda dengan nilai yang sesuai. Nama variabel harus hanya terdiri dari karakter ASCII alfanumerik atau garis bawah, tidak dimulai dengan angka dan tidak boleh kosong; jika tidak, referensi variabel seperti itu akan diabaikan.
Untuk mengganti variabel lingkungan tertentu saja, lihat pertanyaan ini.