J'utilise curl pour récupérer JSON à partir d'une API de repos comme celle-ci:
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
echo "${content}"| jq -r '.data.value'
ce qui produit la valeur dont j'ai besoin. Toutefois; quand je change le code ci-dessus pour ressembler à ceci:
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$(echo "${content}"| jq -r '.data.value')
echo $username
Ne produit rien. Comment puis-je changer cela pour que la variable de nom d'utilisateur reçoive la sortie?
Changé le code en cela et cela a fonctionné:
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$( echo jq -r '.data.value' <<< "${content}" )
echo ${username}
Cela ne fonctionne que si vous perdez "l'écho" sur la deuxième ligne.
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$( echo jq -r '.data.value' <<< "${content}" )
echo ${username}
Vous pouvez le convertir en un revêtement comme:
username=$( curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc | jq -r '.data.value' )
echo ${username}