Estou usando curl para recuperar o JSON de uma API de descanso como esta:
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 altero 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?
Syntax error: redirection unexpected
(com ou sem oecho
que a outra resposta sugere.<<<
operador em um shell baseado em cinzas que não o suporta. De qualquer forma, mesmo em zsh ou bash que suportam esse operador, esse código não faz sentido. Ele redireciona o stdin doecho
qual não o lê. É uma maravilha como essa resposta conseguiu 10 votos positivos.Isso só funciona se você perder o "eco" na segunda linha.
fonte
Você pode convertê-lo em um liner como:
fonte