как извлечь пары ключ-значение и присвоить значение переменной в скрипте bash

#awk #key-value

Вопрос:

Например, у меня в файле сценария есть следующее

 info="{FirstName=Tom;LastName=White;Gender=Male;Status=Married;}"
 

я ищу, чтобы извлечь ключ:vale и присвоить значения переменной

 first_name=[FirstName]
last_name=[LastName]
gender=[Gender]
status=[Status]
 

и, наконец, получить значения из переменных для дальнейшей обработки:

 echo $first_name = Tom
echo $last_name = White
echo $gender = Male
echo $status = Married

echo $info | awk -F'[{};=]' '{for(i=2;i<NF-1;i =2) print $i ":" $(i 1)}'
 

напечатал бы ключ: значение, но не могу сохранить значения в другой переменной и использовать для дальнейшей обработки

Комментарии:

1. Привет и добро пожаловать в SO. Не могли бы вы также поместить входные данные в блоки кода, так как неясно, все ли входные данные находятся в одной строке или в нескольких строках? Кроме того, часть, в которой вы говорите о присвоении значений переменным, неясна (по крайней мере, мне) — вы хотите, чтобы это было сделано на bash или на каком-то другом языке?

2. Да, я хочу, чтобы это было сделано в bash ; я собираюсь обновить описание

3. eval "${info:1: -1}"; echo "$FirstName" Пожалуйста, ознакомьтесь с рисками, связанными с eval .

4. это вопрос bash или вопрос awk?