bash - 在没有文字双引号的情况下将字符串传递给 curl
问题描述
我正在尝试编写一个使用 curl 调用两个 API 的 shell 脚本。
第一个 curl 的 JSON 输出的一个键被传递给第二个 curl。在下面的 Bash 脚本中,我将令牌作为命令行参数传递给第一个 curl,它工作正常。
第一个 curl 的输出被提取到client_token
,我将它传递给第二个 curl。它失败了。
原因是,无论我在哪里$client_token
,该值都被替换为"value"
(带引号)而不是value
(不带引号)。Curl 期望在第二个 curl 中没有引号的字符串。我怎样才能摆脱双引号?
echo $1
XVaultToken=`curl -X POST "https://sub.domain.tld:8200/login" -d '{"token":"'"$1"'"}'`
client_token=`echo $XVaultToken|jq '.auth.client_token'
echo $client_token
apiKey=`curl -X GET https://sub.domain.tld:8200/api-key -H 'X-Vault-Token: "'"$client_token"'"'`
#apiKey=`curl -X GET https://sub.domain.tld:8200/api-key -H 'X-Vault-Token: $client_token'`
echo "apikey"
解决方案
可能您的jq
命令正在输出您不想要的引号。而是要求jq
原始值:
client_token=`echo $XVaultToken|jq -r '.auth.client_token'
推荐阅读
- c - 如何操作 char - C
- extjs6 - ExtJS 6:从其余路径名解析 url 参数
- javascript - 以适当的格式转换数组以显示在 Google 图表中
- c++ - 当我在 ios 中集成 c++ 库时出现链接错误
- flutter - ListView.separated 仅在热重载后显示
- swiftui - SWIFTUI - 自定义颜色集
- matlab - DIPimage 测量缺少参数
- reactjs - React Js 中的路由器问题(用于显示的组件)
- node.js - 将解析函数从 GraphQLObjectType 回滚到另一个
- python - Flask 中的占位符出现 SQL OFFSET 错误