Curlを使用して、次のようにREST APIからJSONを取得しています。
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
何も生成しません。これを変更して、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}
これは、2行目の「エコー」を失った場合にのみ機能します。
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$( echo jq -r '.data.value' <<< "${content}" )
echo ${username}
次のように1つのライナーに変換できます。
username=$( curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc | jq -r '.data.value' )
echo ${username}