Как прочитать файл пары ключ-значение в ассоциативный массив, если часть значения может иметь разделитель в значении? Итак, разбейте строку на первое вхождение разделителя и сохраните в ассоциативном массиве.
Пример содержимого файла KVP:
key=value
key1=[SHA:]$value()%_&+=
Я хотел бы сделать что-то вроде
KVP_FILE="./file.properties"
declare -A keyvals
while read line; do
??
keyvals[$key]="$value"
done < $KVP_FILE
Это пример неработающего кода, который теряет завершающий =
в key1
из примера файла выше.
while IFS=$'=' read key value; do
[[ $key = [#!]* ]] || [[ $key = "" ]] && continue;
keyvals[$key]=$(echo "$value" | sed 's/[\/&]/\\&/g')
done < $SFILE