2016-12-01 151 views
-2

我試圖替換文件中的{{var}},不知道如何轉義大括號。逃離大括號的花括號

" {{ item.key }} " 

當然會取代item.key但忽略{{}}。變量在我的文件看起來像這樣替換:腳本的

define ('DB_HOST', '{{ DB_HOST }}'); 

部分:

replace: 
dest=env.php.j2 
regexp= " {{ item.key }} " << ?????? 
replace= " {{ item.value }} " 

,我需要的'內更換。 預期結果:

define ('DB_HOST', 'hostname'); 

在此先感謝。

+0

現在的問題是:爲什麼? Ansible中的Jinja2模板正是爲此目的而設計的。你爲什麼要手動複製它們? – techraf

+0

@techraf在我的工作中,要替換的變量文件是這樣寫的,我不能改變它。必須替換整個{{var}} – Saus

+2

我在問:爲什麼? Ansible開箱即用,無需替換任何東西。 – techraf

回答

0

您不必自己替換變量。使用時只需將template模塊:

template: 
    src: env.php.j2 
    dest: "/path/to/final/destination" 

和Ansible/Jinja2的將盡一切繁重的工作適合你。

+0

這是用許多文件夾和位置完成的,這就是爲什麼首先我要將文件「複製」到正確的文件夾,然後使用外部文件腳本我試圖替換值。直到今天,當我不得不使用我們的圍繞變量的{{}}模板時,這就沒問題了。據我試用你的方式,模板不能使用我的字典也是外部文件。 – Saus