根据JSON字符串设置环境变量

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

我有一个包含 JSON 数组的字符串。数组的每个元素都是另一个字符串。对于数组的每个元素,我希望最终得到一个环境变量,其名称基于该字符串。

举个例子可能会更清楚。我有这个:

json='["foo", "bar", "baz"]'

我想最终得到这些环境变量:

FOO_VAR=1
BAR_VAR=1
BAZ_VAR=1

我想有两个步骤:

  1. 将 JSON 转换为 bash 数组
  2. 遍历 bash 数组,修改每个字符串并设置一个变量

我也许可以执行第 2 步,但我被困在第 1 步。

json bash
1个回答
0
投票

您可以使

jq
生成可以通过
.
:

获取的字符串
. <(jq -r '"export \(.[] | ascii_upcase)_VAR=1"' <<< "$json")

echo "$FOO_VAR" # prints 1

根据您的输入位置以及值(如果

1
只是占位符)的来源,您可能需要以某种形式包含
@sh

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