#!/bin/bash urldecode() { local data="${1//+/ }" printf '%b' "${data//%/\\x}" } declare -A QUERY IFS='&' read -ra pairs <<< "$FAAS_QUERY" for pair in "${pairs[@]}"; do IFS='=' read -r raw_key raw_value <<< "$pair" key=$(urldecode "$raw_key") value=$(urldecode "$raw_value") QUERY["$key"]="$value" done echo "a = ${QUERY[a]}" echo "b = ${QUERY[b]}" #echo $(ls)