我在创建简单的bash脚本时遇到了问题,所以,我的目标 - 完善jwt令牌并将在下一个查询中使用tokn,对于第一个curl从
login.json
文件中获取凭据,然后将其设置在result.json
中,然后芦苇 token
键并将其设置在变量tokenValue
中,然后我想将其设置在标头中的下一个curl上,但是当我调试时我没有得到Authorization
标头,为什么?当我手动替换变量时(如"Authorization: Bearer test_token"
) - 它有效,我面临着HTTP_AUTHORIZATION=Bearer test_token
curl --request POST -sL \
--url 'http://auth.loc/api/login'\
--output './result.json' \
--header "Content-Type: application/json" \
-d "@login.json" \
tokenValue=$(jq -r '.token' './result.json')
bearerToken="Authorization: Bearer "$tokenValue
echo 'fff' + $bearerToken
curl --request GET -sL \
--url 'http://qbee.local/api/v2/grouptree?_format=json'\
--output './grouptree_result.json' \
--header $bearerToken \
echo "$(cat grouptree_result.json)"
echo 'fff' + $bearerToken
工作正常,我在cli中遇到了正确的数据
我找到了解决方法。问题是双引号和单引号
curl --request POST -sL \
--url 'http://qbee.local/api/v2/login'\
--output './result.json' \
--header "Content-Type: application/json" \
-d "@login.json" \
tokenValue=$(jq -r '.token' './result.json')
echo 'token was' + $tokenValue
curl --request GET -sL \
--url 'http://qbee.local/api/v2/metric/1587260952123_10?type=group'\
--output './metric_result.csv' \
--header 'Authorization: Bearer '"$tokenValue" \
--header 'Content-Type: csv' \
echo "$(cat grouptree_result.json)"
谢谢你有帮助。 --header '授权:持有者 '"$tokenValue"