Вы должны указывать расширения переменных (только один пример из вашего кода):
sed $finalSedPattern
не заключен в кавычки и будет разбит на пробелы (если используется). Вы должны использовать:
sed "$finalSedPattern"
Ваша функция в кавычках:
function getVal {
sedPattern='s/^.*"keyVal":"\([^"]*\)".*$/\1/1'
finalSedPattern="${sedPattern/keyVal/$2}"
echo "$(sed "$finalSedPattern" <<< "$1")"
}
И с необязательными пробелами:
function getVal {
sedPattern='s/^.*"keyVal"[ ]\{0,\}:[ ]\{0,\}"\([^"]*\)".*$/\1/1'
finalSedPattern="${sedPattern/keyVal/$2}"
echo "$(sed "$finalSedPattern" <<< "$1")"
}
Всегда нужен SSID. Вот поэтому и приходит ошибка 802-11-wireless.ssid: property is missing
. Вы должны ввести ssid WLAN.