如何通过 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 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将访问密钥和秘密密钥 shell 变量传递给 Redshift 复制命令

SHELL中SED如何获取变量的值???

R,将变量传递给系统命令

修剪文本表并将值存储为变量

sed命令介绍

将变量传递给从命令行运行的 PHP 脚本