在Shell脚本中使用Linux进行模板化?

我想要的是:

1.)将配置文件作为模板,使用$version $path等变量(例如apache config)

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和path = $2在命令行上进行配置,因此您可以像bash script / foo / bar / baz 1.2.3一样运行它. – 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%或不太可能意外触发的内容.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...