Я пытаюсь отфильтровать запрос curl с помощью jq, чтобы получить конкретные поля и поместить их в переменные. Первоначально я использовал базовый запрос curl, такой как этот:

myResponse=$(curl -u myUsername:myPassword -XGET "https://myWebsite.com/_count?pretty&q=TEST")

Я предоставляю свое имя пользователя и пароль, и получаю подсчет того, сколько раз присутствует термин «ТЕСТ», который возвращается в виде довольно json. Этот ответ помещается в переменную myResponse.

Я использовал jq, чтобы отфильтровать это, чтобы получить конкретное значение счетчика из json:

count=`echo $myResponse | jq -r '.count'`

Это сработало и дало мне номер.

Так что теперь я хотел немного поэкспериментировать. Помимо получения ответа от запроса curl, я также хотел получить код ответа (200, 404 и т.д.). Поэтому я адаптировал свой запрос curl к следующему:

myResponse=$(curl --write-out %{http_code} --silent -u myUsername:myPassword -XGET "https://myWebsite.com/_count?pretty&q=DEBUG")

Это успешно вернуло оба ответа JSON, а затем вернуло код ответа http как число.

Однако, как только это передается в JQ, я получаю следующую ошибку:

jq: error: Cannot index number with string

Как мне решить эту ошибку? Когда это было просто json, jq справлялся с этим нормально, но как только этот код ответа был добавлен в конец, он не может его проанализировать.

Спасибо

0