我正在使用yq v4.27.2,并希望使用环境变量作为密钥来实现这一点:
yq -n '.key1.key2="value"'
key1:
key2: value
然而,我得到的错误是:
export KEY=key1.key2; yq -n '.env(KEY)="value"'
Error: 1:6: invalid input text "KEY)=env(VALUE)"
这样,整个密钥被视为一个节点,
export KEY="key1.key2"; yq -n '.[env(KEY)]="value"'
key1.key2: value
什么是正确的语法?感谢
在阅读此处的源代码后找到语法https://github.com/mikefarah/yq/blob/master/pkg/yqlib/operator_env_test.go#L61
export KEY=.key1.key2; ./yq -n 'eval(strenv(KEY))="value"'
key1:
key2: value