Ich benutze Curl, um JSON von einer Rest-API wie dieser zurückzubekommen:
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
echo "${content}"| jq -r '.data.value'
das erzeugt den Wert, den ich brauche. Jedoch; wenn ich den obigen Code so ändere, dass er so aussieht:
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$(echo "${content}"| jq -r '.data.value')
echo $username
Produziert nichts. Wie kann ich dies ändern, damit der Benutzernamenvariablen die Ausgabe zugewiesen wird?
Syntax error: redirection unexpected
(mit oder ohne,echo
wie die andere Antwort andeutet.<<<
Operator in einer aschebasierten Shell zu verwenden, die ihn nicht unterstützt. Selbst in zsh oder bash, die diesen Operator unterstützen, macht dieser Code keinen Sinn. Es leitet den Standard um, vonecho
dem es nicht gelesen wird. Es ist ein Wunder, wie diese Antwort 10 positive Stimmen erhielt.Dies funktioniert nur, wenn Sie das "Echo" in der zweiten Zeile verlieren.
quelle
Sie können es in einen Einzeiler umwandeln als:
quelle