我有一个特定的 CI/CD 构建步骤,需要从嵌套的 JSON 文件中获取环境变量并在 YAML 文件中匹配/替换它们。
例如,在我的 JSON 文件中:
{
"development": {
"ENV1": "My Value"
}
}
然后,我将定义一个带有占位符的 YAML 文件${development.ENV1}
:
env_variables:
ENV1: ${development.ENV1}
这样当我的 bash 脚本运行时,它会像这样更新文件:
env_variables:
ENV1: "My Value"
我找到了一个参考,可以通过导出值并使用环境变量来执行此envsubst
操作谷歌社区建设者像这样:
for f in $(ls ${files[*]}); do
echo "Pre-processing ${f}..." >&2
cat ${f} | envsubst ${shell_format:+"${shell_format}"} > ${f}.processed
mv ${f}.processed ${f}
done
但我不太确定如何使用嵌套 JSON 执行此等价操作。这是我第一次“真正”尝试 bash,所以我正在边学边学!