function get_json_value()
{
local json=$1
local key=$2
if [[ -z "$3" ]]; then
local num=1
else
local num=$3
fi
local value=$(echo "${json}" | awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~/'${key}'\042/){print $(i+1)}}}' | tr -d '"' | sed -n ${num}p)
echo ${value}
}
get_json_value '{"SetWifiAp": {"on": 1, "password": "88888888", "hotspot_name": "imx8_ap"}}' hotspot_name
get_json_value '{"SetWifiAp": {"on": 1, "password": "88888888", "hotspot_name": "imx8_ap"}}' password
get_json_value '{"SetWifiAp": {"on": 1, "password": "88888888", "hotspot_name": "imx8_ap"}}' on
输出结果:
imx8_ap
88888888
1
本文介绍了一个使用Shell脚本从JSON字符串中提取特定值的方法。通过几个示例展示了如何获取热点名称、密码和开启状态等信息。该脚本适用于需要从JSON格式的数据中快速检索关键值的场景。
2192

被折叠的 条评论
为什么被折叠?



