我已经开始学习 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 解析工具派上用场的地方(例如 jq ):
$ 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/