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