以前用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