在bash脚本中获取curl输出的cookie

时间:2017-07-14 10:26:10

标签: bash curl cookies

当我在bash shell脚本中发送curl命令时,我得到如下输出

< Date: Fri, 14 Jul 2017 10:21:25 GMT
< Set-Cookie: vmware-api-session-id=7ed7b5e95530fd95c1a6d71cf91f7140;Path=/rest;Secure;HttpOnly
< Expires: Thu, 01 Jan 1970 00:00:00 GMT
< Content-Type: application/json

我如何访问vmware-api-session-id。我应该在执行curl时将它存储在变量中吗?

1 个答案:

答案 0 :(得分:0)

您可以执行以下命令:

sessionid=`[YOUR CURL COMMAND] 2>&1 | grep -o vmware-api-session-id=[0-9a-z]+ | grep -o [0-9a-z]+`

2>&1将stderr发送到stdout。你需要这个,因为curl将会话信息发送给stderr。

使用您的示例值,这将转换为

sessionid=7ed7b5e95530fd95c1a6d71cf91f7140

现在,您可以通过添加变量${sessionid}

来访问Cookie值

如果您想要导出vairable,可以使用:

sessionid=`[YOUR CURL COMMAND] 2>&1 | grep -o vmware-api-session-id=[0-9a-z]+ | grep -o [0-9a-z]+`
export sessionid

或更短

export sessionid=`[YOUR CURL COMMAND] 2>&1 | grep -o vmware-api-session-id=[0-9a-z]+ | grep -o [0-9a-z]+`