真实案例:
每次设置环境时,我都会检查并创建某些环境变量(如果不存在则创建)。因此,我认为如果我能有一个存储环境名称
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 设置环境变量,因为在简单的 shell 脚本中设置环境变量要容易得多?
只需为每个环境变量创建一个包含以下行的文本文件:
export FOO=bar
然后
source
从您的 shell 或其他 shell 脚本中获取此文件。