json - 从 curl 请求中提取 token 并在另一个 shell 命令中使用

标签 json bash curl

我已经开始学习 bash 脚本,但我被困在了一些我想全神贯注的事情上。

我有一个输出 token 的 curl 命令,我需要在以下命令中使用它:

curl -k 'https://server:port/session' -X POST -H 'Content-Type: application/json' -d '{"username":"admin","password":"password"}'

然后它在这里输出一个 token :

{"token":"ac07098ad59ca6f3fccea0e2a2f6cb080df55c9a52fc9d65"}

然后我需要在后续命令中使用它

curl https://server:port/ -k -X POST -H 'Content-Type: application/json' -H 'X-Cookie:token=token' -d '

我想我可以将 token 输出到一个文件,然后让一个 sed 命令将 token 写入一个文件,然后新命令使用一个变量 where token=$token

谢谢!

最佳答案

这是 JSON 解析工具派上用场的地方(例如 ):

$ echo '{"token":"ac07098ad59ca6f3fccea0e2a2f6cb080df55c9a52fc9d65"}' | jq -r .token
ac07098ad59ca6f3fccea0e2a2f6cb080df55c9a52fc9d65

所以

json=$( curl -k 'https://server:port/session' -X POST -H 'Content-Type: application/json' -d '{"username":"admin","password":"password"}' )
token=$( jq -r ".token" <<<"$json" )

curl https://server:port/ -k -X POST -H "X-Cookie:token=$token" ...

关于json - 从 curl 请求中提取 token 并在另一个 shell 命令中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45242119/

相关文章:

python - 如何从python代码在kibanahud上触发票证

git - Jenkins 作业通知失败,显示 "No git consumers for URI ..."

javascript - AngularJS - 如何将 json append 到另一个 json 对象?

javascript - 如何从 Json 字符串中分离键值对

javascript - 如何捕获复选框输入

linux - 如何从管道 linux 命令连续将输出发送到文件?

jquery - 在 Rails 3 中处理 JS/ERB 模板中的 JSON

python - 如何解压传递变量的文件夹?

linux - 这个命令是什么意思?

php - AWS S3 cURL 超时