jym*_*mbo 30 bash curl json jq
我正在使用 curl 从这样的休息 api 中获取 JSON:
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
echo "${content}"| jq -r '.data.value'
Run Code Online (Sandbox Code Playgroud)
这产生了我需要的价值。然而; 当我将上面的代码更改为如下所示时:
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$(echo "${content}"| jq -r '.data.value')
echo $username
Run Code Online (Sandbox Code Playgroud)
不产生任何东西。如何更改此设置以便为用户名变量分配输出?
jym*_*mbo 23
将代码更改为此,它起作用了:
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$( jq -r '.data.value' <<< "${content}" )
echo "${username}"
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以将其转换为单行:
username=$( curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc | jq -r '.data.value' )
echo ${username}
Run Code Online (Sandbox Code Playgroud)
小智 5
这仅在您丢失第二行的“回声”时才有效。
content=$(curl -s -X GET -H "Header:Value" http://127.0.0.1:8200/etc)
username=$( echo jq -r '.data.value' <<< "${content}" )
echo ${username}
Run Code Online (Sandbox Code Playgroud)