如何通过 sed 命令将变量传递给 .conf 文件
Posted
技术标签:
【中文标题】如何通过 sed 命令将变量传递给 .conf 文件【英文标题】:How to pass variable to .conf file via sed command 【发布时间】:2017-03-10 16:39:57 【问题描述】:我正在尝试替换 .conf 文件中的一些信息,但变量 $port 正在作为文字字符串传递。如何使用 sed 命令实现这一点?
sed -i -e 's/Listen 80/Listen "$port"/g' /etc/httpd/conf/httpd.conf
【问题讨论】:
【参考方案1】:差不多:D
sed -i -e 's/Listen 80/Listen '$port'/g' /etc/httpd/conf/httpd.conf
或
sed -i -e "s/Listen 80/Listen $port/g" /etc/httpd/conf/httpd.conf
【讨论】:
【参考方案2】:除了 sed 的更多选项:
HTTPD 带有一个用于环境变量的特定文件,您可以像这样设置变量,它被称为envvars
,因此实际上您可以在配置中包含变量,只要您加载该文件或任何其他带有您喜欢的变量的文件之前启动 httpd。
envvars
也被 HTTPD 自带的 apachectl 脚本调用。
注意:例如 Debian 广泛使用此文件并在服务器配置中广泛使用变量。
在 2.4 中,您还可以在 httpd 的配置文件中使用指令 Define
,例如在配置的许多地方经常使用的指令或名称。
例如:
Define sslport 443
然后:
Listen $sslport
<Virtualhost *:$sslport>
因此,如果您需要大量使用变量,您甚至可以混合使用这两种方法,尽管这可能是极端的 :)
【讨论】:
以上是关于如何通过 sed 命令将变量传递给 .conf 文件的主要内容,如果未能解决你的问题,请参考以下文章