我有一个包含 JSON 数组的字符串。数组的每个元素都是另一个字符串。对于数组的每个元素,我希望最终得到一个环境变量,其名称基于该字符串。
举个例子可能会更清楚。我有这个:
json='["foo", "bar", "baz"]'
我想最终得到这些环境变量:
FOO_VAR=1
BAR_VAR=1
BAZ_VAR=1
我想有两个步骤:
我也许可以执行第 2 步,但我被困在第 1 步。
您可以使
jq
生成可以通过 .
: 获取的字符串
. <(jq -r '"export \(.[] | ascii_upcase)_VAR=1"' <<< "$json")
echo "$FOO_VAR" # prints 1
根据您的输入位置以及值(如果
1
只是占位符)的来源,您可能需要以某种形式包含 @sh
。