【发布时间】:2021-02-11 15:39:35
【问题描述】:
类似于例如这个:Parse out key=value pairs into variables
.env
key1=value1
key2=value2
config.yml
some:
key1: ${key1}
key2: ${key2}
如何将config.yml 中的值替换为.env 中的值?
到目前为止,我得到了这个:
awk 'FNR==NR {n=index($1,"=");if(n){vars[substr($i, 1, n - 1)]=substr($i, n + 1)}; next } { for (i in vars) gsub("${"i"}", vars[i]) }1' .env file.yml
^- Can't figure out how to replace $
我可以使它与{key1} 一起工作,但不能与${key1} 一起工作。我怎样才能做到这一点?
【问题讨论】:
-
使用 dotenv 解析器并生成
config.yml,而不是尝试将config.yml设为模板。 -
这是github.com/opendistro-for-elasticsearch/security/issues/24 的一种解决方法(环境变量不会被替换,即使它们应该被替换)