You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于JSON数组字符串生成指定命名规则的环境变量?

将JSON字符串数组转换为Bash环境变量

需求场景

给定包含字符串元素的JSON数组字符串:

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

需要生成对应的环境变量,变量名为元素大写后拼接_VAR,值统一设为1:

FOO_VAR=1
BAR_VAR=1
BAZ_VAR=1

实现方案

按照你提出的两步思路即可完成,以下是完整的可执行Bash脚本:

#!/bin/bash

# 定义目标JSON字符串
json='["foo", "bar", "baz"]'

# 将JSON数组转换为Bash数组
mapfile -t arr < <(echo "$json" | jq -r '.[]')

# 遍历数组生成环境变量
for item in "${arr[@]}"; do
  # 转换元素为大写并拼接变量后缀
  var_name="${item^^}_VAR"
  # 导出环境变量(若无需全局可用可去掉export)
  export "$var_name"=1
done

# 可选:打印变量验证结果
echo "FOO_VAR=$FOO_VAR"
echo "BAR_VAR=$BAR_VAR"
echo "BAZ_VAR=$BAZ_VAR"

关键步骤说明

  • JSON转Bash数组:使用jq -r '.[]'解析JSON数组,将每个元素逐行输出;再通过mapfile -t arr把输出内容读取到Bash数组arr中,-t参数会自动去除每行末尾的换行符,保证元素格式正确。
  • 生成环境变量:遍历数组时,利用Bash内置的参数扩展${item^^}将元素转为大写,拼接_VAR得到最终变量名;使用export命令将变量导出为环境变量(如果仅在当前脚本内使用,可省略export)。

内容的提问来源于stack exchange,提问作者Dave Cross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 05:42:41