将数组值分配给 .env 文件上的 ENV var

Posted

技术标签:

【中文标题】将数组值分配给 .env 文件上的 ENV var【英文标题】:assign array value to ENV var on .env file 【发布时间】:2015-11-21 22:36:40 【问题描述】:

我需要在我的 .env 文件中设置一个字符串数组,但找不到有关正确语法的信息。测试这个需要相当长的时间,所以我想节省一些时间。其中一些选项应该可以工作:

MY_ARRAY=[first_string, second_string]
MY_ARRAY=[first_string second_string]
MY_ARRAY=['first_string', 'second_string']

谁能告诉我是哪一个?

【问题讨论】:

【参考方案1】:

据我所知,dotenv 不允许设置除字符串(和多行字符串)之外的任何内容。解析器语法为:

LINE = /
  \A
  (?:export\s+)?    # optional export
  ([\w\.]+)         # key
  (?:\s*=\s*|:\s+?) # separator
  (                 # optional value begin
    '(?:\'|[^'])*'  #   single quoted value
    |               #   or
    "(?:\"|[^"])*"  #   double quoted value
    |               #   or
    [^#\n]+         #   unquoted value
  )?                # value end
  (?:\s*\#.*)?      # optional comment
  \z
/x

这背后的原因是 shell 和操作系统支持设置其他 types of env variables is spotty。

您可以使用逗号或竖线 (|) 等分隔符并使用 ENV['FOO'].split('|') 分割字符串。但也许你想做的事情应该用一个结合 ENV vars 的初始化程序来解决。

【讨论】:

我同意您使用逗号分割 var 的建议。谢谢@max。 关于通过初始化程序组合 ENV 变量的好建议。与拆分 var 字符串相比,这是一个不那么笨拙的解决方案。

以上是关于将数组值分配给 .env 文件上的 ENV var的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Nuxt 上的 scss 文件中从 env 导入颜色变量

如何在 GitHub Actions 中使用 bash 表达式设置 env var?

在 Windows power shell 中,如何提取属性文件值并将其保存到 env var?

GCP kms加密env var并通过cloudbuild.yaml将加密密钥传递给谷歌应用引擎

无法使用 process.env 变量连接到数据库,但 process.env vars 在日志中打印

声明env变量哪个值包含docker / docker-compose的空间