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