Ubuntu环境下如何从环境变量的JSON中读取指定键
在Ubuntu中访问环境变量内的JSON键值
问题场景
已在Ubuntu系统中将JSON文本存入环境变量:
~ test='{"test": { "mmm":"432"}}' ~ echo $test {"test": { "mmm":"432"}}
需要访问其中的test键,输出对应的{ "mmm":"432"},希望实现类似echo $test.test的便捷调用效果。
解决方案
1. 使用jq工具(推荐,最便捷)
jq是Ubuntu上专门处理JSON的工具,先安装它:
sudo apt update && sudo apt install jq -y
直接解析环境变量中的JSON:
test='{"test": { "mmm":"432"}}' echo "$test" | jq '.test'
执行后输出:
{ "mmm": "432" }
2. 封装成自定义函数(接近期望的调用格式)
如果想要更贴近$test.test的简洁写法,可以在~/.bashrc(或~/.zshrc,取决于你的shell)中添加如下函数:
json_extract() { local var="$1" local key="$2" echo "${!var}" | jq "$key" }
添加后执行source ~/.bashrc使函数生效,之后就能这样调用:
test='{"test": { "mmm":"432"}}' json_extract test '.test'
同样会输出目标内容。
3. 依赖Python(无需额外安装工具)
Ubuntu默认预装Python,可借助其JSON模块解析:
test='{"test": { "mmm":"432"}}' echo "$test" | python3 -c "import json, sys; print(json.dumps(json.load(sys.stdin)['test']))"
输出结果:
{"mmm": "432"}
内容的提问来源于stack exchange,提问作者432i
相关产品推荐
相关产品推荐

