我有一个shell脚本(由apache cgi调用),该脚本应该卷曲并grep结果以检查服务器的运行状况。到目前为止,这就是我所得到的。
printf "Content-type: text/html\n"
PAGE="$(curl -v -u http://targetserver/xmlgatewayauth/login)"
CRES="$($PAGE|grep "login";)"
echo $CRES;
如果我在Linux中将脚本作为外壳运行,则输出为:
...
< Location: login_success.jsp
< Content-Length: 0
< Date: Mon, 15 Oct 2018 08:42:39 GMT
...
但是如果我从浏览器通过CGI调用脚本,结果为空。 我已经使用静态输出测试了CGI脚本,并且该脚本可以正常工作。 (Hello World)。
问题是: 我不希望脚本输出除变量“ CRES”以外的任何内容。但是它将整个curl(grep)(不是变量)输出到控制台,并且没有将变量输出到网站。
我该如何解决问题?
答案 0 :(得分:0)
问题是您要在其他行之前打印第1行。因此,将顺序更改为此:
PAGE="$(curl -v -u http://targetserver/xmlgatewayauth/login)"
CRES="$($PAGE|grep "login";)"
echo $CRES;
printf "Content-type: text/html\n"
或
PAGE="$(curl -v -u http://targetserver/xmlgatewayauth/login)"
CRES="$($PAGE|grep "login";)"
printf "Content-type: text/html\n"
echo $CRES;