在 Bash 脚本中,直接将数组赋值给环境变量不可行。但可以通过字符串序列化方式实现跨进程传递。常见场景包括:CI/CD 配置、Docker 启动参数、服务部署脚本等,需要在环境变量中保存一组值。
1 回答
正确做法是:用分隔符或 JSON 格式将数组转为字符串后存入环境变量,再在脚本中解析还原。
1. 用逗号分隔(简单场景)
export ITEMS="a,b,c"
IFS=',' read -ra items_array <<< "$ITEMS"
2. 用 JSON 字符串(推荐,支持复杂内容)
export ITEMS='["a","b","c"]'
items_json=$(echo "$ITEMS" | jq -r '.[]')
3. 注意事项:
- 环境变量长度有限,避免存储大数组。
- 元素含逗号或引号时,必须使用 JSON。
- 在容器或服务中,建议优先使用配置文件而非环境变量传数组。
- 仅用于临时数据,不适用于持久化存储。
在知识的海洋中遨游
0 评论