Zsh:使用 yq 从 yaml 文件创建关联数组

问题描述 投票:0回答:1

真实案例:

每次设置环境时,我都会检查并创建某些环境变量(如果不存在则创建)。因此,我认为如果我能有一个存储环境名称

env_N
和环境值
env_V
对的文件,而不是一直手动执行此操作,那就太好了。在所有文本文件格式中,
yaml
看起来最简单,也更自然地存储该信息。

所以我认为如果我使用

yaml
将环境变量吸入
yq
文件并创建准备好由
zsh
foreach
循环迭代的关联数组:

foreach entry in my_assoc_arr
do
  check_and_create(entry.env_N, entry.env_V)
done

最终结果:

$ echo $env_N1
env_V1
$ echo $env_N2
env_V2
$ echo $env_N3
env_V3
...

我遇到的问题是使用 shell

yaml
脚本中的
yq
将我的
zsh
获取到关联数组。

应用评论中的每条建议后,我无法从

yaml
yq
创建关联数组。我遇到了来自
yq
的错误,例如 错误的语法 或脚本是否有效取决于我是否打开了
#!/bin/zsh
或注释掉了。

我的印象是我的任务很简单,但不知何故我无法实现这一点。

我在这里做错了什么?

PS:我在 macOS 上使用

zsh

yaml zsh associative-array yq
1个回答
0
投票

为什么要通过 Yaml 设置环境变量,因为在简单的 shell 脚本中设置环境变量要容易得多?

只需为每个环境变量创建一个包含以下行的文本文件:

export FOO=bar

然后

source
从您的 shell 或其他 shell 脚本中获取此文件。

© www.soinside.com 2019 - 2024. All rights reserved.