GNU/Linux >> Belajar Linux >  >> Linux

Ganti Variabel Lingkungan Dalam File Dengan Nilai Sebenarnya?

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.


Linux
  1. Meningkatkan keamanan Linux dengan Advanced Intrusion Detection Environment (AIDE)

  2. Ganti Baris Baru Dengan Nul?

  3. Lum – Ganti Nilai Umum Dalam Dua File Menurut Kolom Pertama?

  1. Memeriksa variabel lingkungan

  2. Bagaimana melakukan sed like text ganti dengan python?

  3. Cara mengatur variabel lingkungan Linux dengan Ansible

  1. Referensi Variabel Lingkungan *di* /etc/environment?

  2. Variabel Lingkungan Database Oracle dan Fungsinya

  3. ganti baris dalam satu file dengan baris lain dengan nomor baris