Intereting Posts
Поиск истории Alt + F2 в среде рабочего стола Cinnamon Какие новые функции доступны для bash 4? Отказ для $ VIM недействителен выполнить chmod во время загрузки на безголовом debian Односторонняя синхронизация каталога, но оставляйте удаленные файлы, удаленные по месту назначения Автозаполнение zsh для символических ссылок Использование оверлейной функции очень похоже на смену Передача параметров Upstart Как определить, использует ли плата Linux аппаратное FPU или нет? Использование awk для обработки файла сопоставления с динамическим числом столбцов простое кошачье эхо процесс подстановки зависает Изменение интервала между файлами в ls Команда Bash не выполняется из сценария, но работает при вводе в терминал udev: неправильная символическая ссылка создается во время загрузки Используйте тест оболочки для проверки основной информации о файле.

Установка вывода jq в переменную Bash

Я использую завиток, чтобы вернуть JSON из rest api следующим образом:

content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc) echo "${content}"| jq -r '.data.value' 

который производит требуемое значение. Однако; когда я изменю приведенный выше код, чтобы выглядеть так:

 content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc) username=$(echo "${content}"| jq -r '.data.value') echo $username 

Не производит ничего. Как я могу изменить это так, чтобы переменная имени пользователя получила назначение?

Изменен код, и он сработал:

 content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc) username=$( echo jq -r '.data.value' <<< "${content}" ) echo ${username} 

Это работает, только если вы потеряете «эхо» во второй строке.

 content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc) username=$( echo jq -r '.data.value' <<< "${content}" ) echo ${username}