我有一个返回访问令牌字符串的代码。
#!/bin/bash
token=$(curl --globoff -X POST "https://example.com/token" -F 'grant_type=client_credentials' -F 'client_id=d86fc9b690963b8dda602bd26f33454r457e9024a4ecccf4c3bbf66ffcbc241b' -F 'client_code'='ff148c56118728b62c9f2ew3e4r009a7a1c645276b70611fa32fa055b9944934')
echo "$token" > Token.txt
此命令给出的输出是:
{
"access_token": "5048e7d38e73b4a809a4fcb219b63ae34f34f43f83d6663ffd777203afb5654ab",
"token_type": "bearer",
"expires_in": 7200
}
即。变量token
包含上述结果。我的问题是如何单独获取访问令牌5048e7d38e73b4a809a4fcb219b63ae34f34f43f83d6663ffd777203afb5654ab
并保存到另一个变量。
答案 0 :(得分:3)
首先尝试jq
,如果不可能,这是使用CDate("01/09/2017")
的解决方法:
awk
在access_token=$(curl --globoff -X POST "https://example.com/token" \
-F 'grant_type=client_credentials' \
-F 'client_id=d86fc9b690963b8dda602bd26f33454r457e9024a4ecccf4c3bbf66ffcbc241b' \
-F 'client_code'='ff148c56118728b62c9f2ew3e4r009a7a1c645276b70611fa32fa055b9944934'|\
awk -F\" '/access_token/{print $4}')
中执行此操作的方法是
jq
答案 1 :(得分:0)
我在bash中使用它来获取和使用令牌......
access_tok=$(curl -s -X POST -d "client_id=$(< "$LOGON_HOME/client_id" )&client_secret=$(< "$LOGON_HOME/client_secret")&grant_type=client_credentials" "${TOKEN_URL}" )
access_tok=${access_tok#*access_token\":\"}
access_tok=${access_tok%%\"*}
以后
curl -l -s -O -H "Authorization: Bearer ${access_tok}" "${FILE_URL}"