如何通过sed命令将变量传递给.conf文件

时间:2016-10-27 20:54:18

标签: variables sed httpd.conf centos7

我正在尝试替换.conf文件中的一些信息,但变量 $ port 正在作为文字字符串传递。如何使用sed命令实现此目的?

 sed -i -e 's/Listen 80/Listen "$port"/g' /etc/httpd/conf/httpd.conf

2 个答案:

答案 0 :(得分:2)

几乎: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

答案 1 :(得分:1)

除了sed之外还有更多选择:

HTTPD带有环境变量的特定文件,您可以设置这样的变量,它被称为envvars,所以实际上只要加载该文件或任何其他带有变量的文件,就可以在配置中包含变量喜欢在开始httpd。

之前

envvars也由HTTPD附带的apachectl脚本调用。

注意:例如,Debian广泛使用此文件,并广泛使用服务器配置中的变量。

在2.4中,您还可以在httpd的配置文件中使用指令Define,例如,在配置的许多位置经常使用的指令或名称。

例如:

Define sslport 443

然后:

Listen ${sslport}
<Virtualhost *:${sslport}>

因此,如果您需要广泛使用变量,您甚至可以混合使用这两种方法,尽管这可能是极端的:)