【问题标题】:How to pass variable to .conf file via sed command如何通过 sed 命令将变量传递给 .conf 文件
【发布时间】: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


    【解决方案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}>
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-16
        • 2017-12-15
        • 2016-09-15
        • 2019-09-11
        • 1970-01-01
        • 2019-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多