Я пытаюсь отфильтровать запрос 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 справлялся с этим нормально, но как только этот код ответа был добавлен в конец, он не может его проанализировать.
Спасибо