У меня проблема с присвоением значения массиву bash, который был проанализирован jq
. У меня есть JSON вывод из curl
:
{
"id": 6442,
"name": "Execute Workflow",
"description": "Plan: data",
"status": "In Queue",
"start_date": 0,
"end_date": 0,
"job_type": "Execute Workflow",
"created_by_name": null,
"creation_date": 1580762385615,
"creation_date_str": "02/03/2020 09:39:45 PM",
"last_updated_date": 1580762385615,
"last_updated_date_str": "02/03/2020 09:39:45 PM",
"last_updated_by_name": null,
"schedule_on": 0,
"paused_at_step": 0,
"percent_complete": 0,
"job_action_type": null,
"child_job_id": -1
}
Я хочу сохранить два ключевых значения .id
и .status
в массиве bash.
Я делаю это так:
array=( $(echo '{ "id": 6442, "name": "Execute Workflow", "description": "Plan: data", "status": "In Queue", "start_date": 0, "end_date": 0, "job_type": "Execute Workflow", "created_by_name": null, "creation_date": 1580762385615, "creation_date_str": "02/03/2020 09:39:45 PM", "last_updated_date": 1580762385615, "last_updated_date_str": "02/03/2020 09:39:45 PM", "last_updated_by_name": null, "schedule_on": 0, "paused_at_step": 0, "percent_complete": 0, "job_action_type": null, "child_job_id": -1}' | jq '.id, .status') )
Все выглядит нормально, пока я не попытаюсь получить второй элемент этого массива: echo ${array[1]}
и я получу "In
, а не "In Queue"
.
Мой массив длиной 3 элемента echo ${#array[@]}
возвращает 3
, но я хочу, чтобы он был длиной 2 элемента. Может кто-нибудь помочь мне, пожалуйста?
Следующие мои шаги в скрипте bash должны назначить job_status="=${array[1]}"
, и я хочу получить переменную job_status="In Queue"
.