Linux
在 Shell 腳本中使用 Linux 進行模板化?
我想要完成的是:
1.)有一個配置文件作為模板,變數如 $ version $ 路徑(例如 apache 配置)
2.) 擁有一個“填充”模板變數並將生成的文件寫入磁碟的 shell 腳本。
這可能與一個shell腳本。如果您能說出一些我可以完成此任務的命令/工具或一些好的連結,我將非常感激。
這是很有可能的。實現這一點的一個非常簡單的方法是讓模板文件實際上是腳本並使用 shell 變數,例如
#! /bin/bash version="1.2.3" path="/foo/bar/baz" cat > /tmp/destfile <<-EOF here is some config for version $version which should also reference this path $path EOF
您甚至可以通過指定
version=$1
and在命令行上進行配置path=$2
,這樣您就可以像bash script /foo/bar/baz 1.2.3
.-
before EOF 會導致行之前的空白被忽略,如果您不想要這種行為,請使用plain<<EOF
。另一種方法是使用 sed 的搜尋和替換功能
#! /bin/bash version="1.2.3" path="/foo/bar/baz" sed -e "s/VERSION/$version/g" -e "s/PATH/$path/" /path/to/templatefile > /tmp/destfile
這將替換字元串 VERSION 和 PATH 的每個實例。如果還有其他原因,這些字元串會出現在模板文件中,您可能會將搜尋和替換為VERSION或 %VERSION% 或不太可能意外觸發的內容。