SORU
26 Mayıs 2010, ÇARŞAMBA


Bash ile şablonları yapılandırma dosyaları oluşturmak için Nasıl?Bash Şablon:

Yapılandırma dosyaları oluşturmak için Apache otomatik hale getirmek ve kendi web sunucusu için PHP için bir senaryo yazıyorum. Arama İSPConfig gibi herhangi bir GUI kullanmak istemiyorum.

Apache bazı şablonlar ve PHP yapılandırma dosyaları var. Bash komut dosyası şablonları okuyun, klasöre değişken değiştirme ve çıkış ayrıştırılmış şablonları yapmak gerekiyor. Bunu yapmanın en iyi yolu nedir? Birkaç yol düşünemiyorum. Hangisinin en iyisi olduğunu ya da bunu yapmak için daha iyi yollar var olabilir? Saf Bash (örneğin PHP kolay) ben de bunu yapmak istiyorum

1) How to replace ${} placeholders in a text file?

template.txt:

the number is ${i}
the word is ${word}

script.sh:

#!/bin/sh

#set variables
i=1
word="dog"
#read in template one line at the time, and replace variables
#(more natural (and efficient) way, thanks to Jonathan Leffler)
while read line
do
    eval echo "$line"
done < "./template.txt"

BTW, nasıl harici bir dosya burada çıkış yönlendirme yapabilirim? Kaçmak için gereken bir şey varsa değişkenler içeriyorsa, tırnak söylüyorum?

2) değeri ile her bir değişken değiştirilmesi için kedi & sed Kullanarak:

Verilen template.txt:

The number is ${i}
The word is ${word}

Komut:

cat template.txt | sed -e "s/\${i}/1/" | sed -e "s/\${word}/dog/"

Bana kötü görünüyor birçok farklı semboller kaçma ihtiyacı nedeniyle ve çok değişken ile uzun hat tooooo olacak.

Başka şık ve güvenli bir çözüm olabilir mi?

CEVAP
15 HAZİRAN 2012, Cuma


envsubst deneyin

FOO=foo
BAR=bar
export FOO BAR

envsubst <<EOF
FOO is $FOO
BAR is $BAR
EOF

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • booba1234

    booba1234

    22 Temmuz 2006
  • lilstevie89

    lilstevie89

    25 Mart 2011
  • sknbp

    sknbp

    16 Kasım 2006