【问题标题】:How to use environment variable(string) in a .conf file如何在 .conf 文件中使用环境变量(字符串)
【发布时间】:2021-08-02 13:40:44
【问题描述】:

我有一个 .conf 文件,其中有一个标签和变量,我正试图将其移至 .env 文件。我怎样才能做到这一点?

这是我的 .conf 文件中的内容

[[inputs.snmp]] #Label
    agents = ["1.1.1.1:111","2.2.2.2:111","2.3.3.3:111"] #Variable
    version = 2 #Variable

我正在尝试在 .env 文件中包含类似的内容

VAR_FOR_CONF_FILE='[[inputs.snmp]]\n    agents= ["1.1.1.1:111","2.2.2.2:111","2.3.3.3:111"]\n    version=2'

我希望我可以在我的 .conf 文件中使用 $VAR_FOR_CONF_FILE 而不是 [[inputs.snmp]]agents = ["1.1.1.1:111","2.2.2.2:111","2.3.3.3:111"] 但我不断收到此错误Error parsing data: line 7: invalid TOML syntax for $VAR_FOR_CONF_FILE(我不确定我是否收到此错误,因为我的 .env 文件中的语法错误,或者我在我的 .conf 文件中错误地声明了 $VAR_FOR_CONF_FILE)

我做对了吗(或者甚至可以做我想要完成的事情)?

(注意:我正在尝试完成此操作,因此我可以简单地使用 $VAR_FOR_CONF_FILE 而不是在 .conf 文件中进行硬编码)

【问题讨论】:

  • 您最好显示产生错误的代码行。顺便说一句,这不是 bash 本身发出的错误消息。
  • @user1934428 第 7 行是我发布的错误上方的行。这就是我得到的。
  • 这只是一个变量赋值。它不能产生这个错误。见here
  • @user1934428 如果你问我如何在我的 .env 文件中使用变量赋值,那么我只是使用 $VAR_FOR_CONF_FILE (它也恰好在第 7 行 - 很抱歉造成混淆)
  • 我没有在您的帖子中看到您将如何使用它。如果我们没有看到产生它的代码,那么讨论你得到的错误是没有意义的。

标签: bash configuration environment-variables


【解决方案1】:

我正在尝试在 .conf 文件中使用 VAR_FOR_CONF_FILE

如果 .conf 文件解析程序不支持变量替换,则无法修改 .conf 文件,但这可以自动化:

sed -i "s/\<VAR_FOR_CONF_FILE\>/$VAR_FOR_CONF_FILE/" my.conf

【讨论】:

    猜你喜欢
    • 2021-12-06
    • 2015-01-29
    • 2013-03-10
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    • 2020-07-02
    相关资源
    最近更新 更多