我正在尝试替换.conf文件中的一些信息,但变量 $ port 正在作为文字字符串传递。如何使用sed命令实现此目的?
sed -i -e 's/Listen 80/Listen "$port"/g' /etc/httpd/conf/httpd.conf
答案 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)
HTTPD带有环境变量的特定文件,您可以设置这样的变量,它被称为envvars
,所以实际上只要加载该文件或任何其他带有变量的文件,就可以在配置中包含变量喜欢在开始httpd。
envvars
也由HTTPD附带的apachectl脚本调用。
注意:例如,Debian广泛使用此文件,并广泛使用服务器配置中的变量。
在2.4中,您还可以在httpd的配置文件中使用指令Define
,例如,在配置的许多位置经常使用的指令或名称。
例如:
Define sslport 443
然后:
Listen ${sslport}
<Virtualhost *:${sslport}>
因此,如果您需要广泛使用变量,您甚至可以混合使用这两种方法,尽管这可能是极端的:)