Я пытаюсь создать скрипт, который принимает определенное значение атрибута и сохраняет его в массиве, это следующий файл JSON:
[
{
"id": 1,
"name": "myna",
"description": "Simple Question",
"speaker": "USER",
},
{
"all_Id's": [
"11111"
],
"user": "me",
},
{
"id": 2,
"name": "mry",
"description": "Simple",
"speaker": "aaa",
}
]
как вы видите, объект в файле json не имеет одинаковых атрибутов, поэтому я смотрю только на объект, имеющий атрибут "name", следующий скрипт читает файл Json и возвращает значения только имя атрибута , но я строю что-то неправильно, как theERROR всегда на «{» последнего объекта в файле. Я не знаю почему, что я делаю неправильно?
ожидаемый результат: [myna, mry]
#!/bin/bash
declare -a OB_I=()
declare counter1=0
jq -r '.name' file.json ; while read -r val ; do
if [[ ! $val ]]
then
OB_I[$counter]=$val ;
counter=$((counter+1));
fi
done;
$ printf '%s\n' "${OB_I[@]}"