Bash curl 如何在标头中设置变量?

问题描述 投票:0回答:2

我在创建简单的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

中遇到了正确的数据
bash curl
2个回答
1
投票

我找到了解决方法。问题是双引号和单引号

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)"

0
投票

谢谢你有帮助。 --header '授权:持有者 '"$tokenValue"

© www.soinside.com 2019 - 2024. All rights reserved.