抢卷曲输出的Cookie

问题描述:

当我在我的bash shell脚本发送curl命令我得到的输出如下抢卷曲输出的Cookie

< 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走在前面。我应该在执行卷曲时将其存储在变量中吗?

+0

你想要字符串'7ed7b5e95530fd95c1a6d71cf91f7140'存储在一个变量? – Inian

您可以执行以下命令:

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

2>&1发送错误输出到标准输出。你需要这个,因为curl发送会话信息给stderr。

使用您的示例值,将其转化为

sessionid=7ed7b5e95530fd95c1a6d71cf91f7140 

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

如果你要导出的vairable访问cookie值,你可以使用:

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]+` 
+0

这给了我存储在'vmware-api-session-id'变量中的'api-session-id' – aaj

+0

@ love2code你是对的!我忘了把-o放在grep命令中。另外我不得不重新命名变量。我修好了它并编辑了我原来的帖子! –

+0

当我做'echo $ sessionid' /'echo $ {sessionid}' – aaj