我需要使用openssl在
shell脚本中执行一些HTTP GET请求.我现在用来做这条线的线如下所示.这是解析以下格式的
XML响应的内容.
原文链接:/bash/385285.html<结果>成功< /结果>
<结果>失效< /结果>
echo -e "GET /test HTTP/1.1\r\nHost:$(hostname)\r\n\r\n" | openssl 2>&1 s_client -quiet -connect server-url:443 | grep -o -P --color '(?<=Result\>).*(?=\</Result)'
这样可以相应地返回字符串’success’或’failure’.我面临的问题是openssl命令在执行GET请求后没有终止,而是在那里等待更多输入.我认为这是由于隐式-ign_eof导致-quiet选项导致的自动终止.我已经尝试使用-no_ign_eof选项,但这会导致openssl命令在GET请求收到响应之前终止,所以如果我使用它,我就无法得到响应的内容.
如何修改此命令以便我可以通过stdin传递GET请求(因为我想把它放在一个循环中),但是在每次请求后openssl命令都会终止?