shell定義帶變量的模板,直接修改變量,用這種方法不再用擔憂正則匹配不許的問題了

以前用shell 寫腳本,有時候不光要定義一個 配置文件,不少時候還要有個模板,不一樣的環境直接替換相同的模板內容來用;然而,在這以前,一直都是用的 sed 、 awk 、grep 之類的。突然有一天有個 yaml 文件,裏面要替換的太多,sed 太麻煩,用這種方法,不知道要少寫多少正則。。。
淡很少扯,我給你們夥上一個例子:shell

建立一個模板,在模板內直接寫變量vim

vim a.model
#This is app config model
app_name=$name
app_ip=$ip

shell 腳本直接替換變量bash

vim b.sh
#!/bin/bash

name="bill_server"
ip="192.168.3.22"
all_variables="name=$name ip=$ip"
cp -a a.model rfile.conf
resourcefile=`cat rfile.conf`
printf "$all_variables\ncat << EOF\n$resourcefile\nEOF" | bash > rfile.conf

運行腳本後,查看生成的配置文件:app

cat rfile.conf

#This is app config model
app_name=bill_server
app_ip=192.168.3.22

是否是很方便?若是有不少環境用同樣的配置文件,用這個方法作配置文件,是否是很方便,只要把shell中的變量換成從外邊傳參,複製的文件也餓改爲變量,就能夠一下生成不少相同格式內容不一樣的文件了。若是這個配置文件足夠長,那麼省了多少正則呢?ide

相關文章
相關標籤/搜索