jq出力をBash変数に設定する

jq出力をBash変数に設定する

次のように、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

何も生産されません。出力がユーザー名変数に割り当てられるように、これをどのように変更できますか?

ベストアンサー1

コードを次のように変更しましたが、うまくいきました。

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

おすすめ記事