Подтвердить что ты не робот

Получить поле из json и назначить переменной в bash script?

У меня есть json store в jsonFile

{
  "key1": "aaaa bbbbb",
  "key2": "cccc ddddd"
}

У меня есть код в mycode.sh:

#!/bin/bash
value=($(jq -r '.key1' jsonFile))
echo "$value"

После запуска ./mycode.sh результат aaaa но если я просто запустил jq -r '.key1' jsonFile, результат будет aaaa bbbbb

Может ли кто-нибудь мне помочь?

4b9b3361

Ответ 1

С этой строкой кода

value=($(jq -r '.key1' jsonFile))

вы назначаете оба значения array. Обратите внимание на внешние скобки () вокруг команды. Таким образом, вы можете получить доступ к значениям по отдельности или выполнить эхо-контент содержимого всего массива.

$ echo "${value[@]}"
aaaa bbbb

$ echo "${value[0]}"
aaaa

$ echo "${value[1]}"
bbbb

Поскольку вы эхом отошли $value, не указав, какое значение вы хотите получить, вы получите только первое значение массива.