Configurando a saída jq para uma variável Bash

5

Estou usando o curl para recuperar o JSON de uma API de descanso assim:

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

que produz o valor que eu preciso. Contudo; quando eu mudar o código acima para ficar assim:

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

Não produz nada. Como posso alterar isso para que a variável de nome de usuário seja atribuída à saída?

    
por jymbo 30.03.2017 / 23:41

2 respostas

8

Alterou o código para isso e funcionou:

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

Isso só funciona se você perder o "eco" na segunda linha.

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

Tags