- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个解析cgi参数的SHELL脚本
一个解析cgi参数的SHELL脚本?测试工作中,经常会涉及到一些要验证服务器对某些cgi接口查询结果返回信息进行解析是否正确的情况。而提供cgi接口的通常又是另外的部门,测试的时候需要调试一些返回结果不方便。所以需要自己模拟虚假的cgi接口来达到同样的目的。????? 比如说,类似/query.cgi?username=***kind=***这样的接口会根据username和kind的值的不同返回6类结果,每一类结果,请求服务器都会针对地走不同的处理流程,这就需要每一个返回结果都需要模拟到,于是乎,建立模拟的cgi接口势在必行。以前自己也没有接触过cgi程序,翻了一些基础资料发现总体框架也不是很复杂,而解析html发过来的参数有不少现成的程序可以使用,不用自己写了。因为只是需要简单的模拟返回结果,所以用shell写cgi程序,开始用了uncgi解析,配置很方便,具体方法可以看:/~koreth/uncgi.html?后来又发现一个shell写的解析程序proccgi.sh,似乎在简单的cgi接口中使用更方便??proccgi.sh文件内容如下:#!/bin/sh## Process input to a CGI script. Written and Copyright 1995 Frank Pilhofer# You may freely use and distribute this code free of charge provided that# this copyright notice remains.????????????fp@informatik.uni-frankfurt.de## All variables in here are prefixed by _F_, so you shouldnt have# any conflicts with your own var names## get query string. if $REQUEST_METHOD is POST, then it must be read# from stdin, else its in $QUERY_STRING#if [ ${DEBUG:-0} -eq 1 ] ; then?echo --Program Starts-- 12fi#if [ $REQUEST_METHOD = POST ] ; then?_F_QUERY_STRING=`dd count=$CONTENT_LENGTH bs=1 2 /dev/null`?if [ $QUERY_STRING != ] ; then??_F_QUERY_STRING=$_F_QUERY_STRING$QUERY_STRING?fi?if [ ${DEBUG:-0} -eq 1 ] ; then??echo --Posted String-- 12?fielse?_F_QUERY_STRING=$QUERY_STRING?if [ ${DEBUG:-0} -eq 1 ] ; then??echo --Query String-- 12?fifiif [ ${DEBUG:-0} -eq 1 ] ; then?( echo ? $_F_QUERY_STRING?? echo --Adding Arguments-- ) 12fi## if there are arguments, use them as well.#for _F_PAR in $* ; do?_F_QUERY_STRING=$_F_QUERY_STRING$_F_PAR?if [ ${DEBUG:-0} -eq 1 ] ; then??echo ? arg $_F_PAR 12?fidoneif [ ${DEBUG:-0} -eq 1 ] ; then?( echo --With Added Arguments--?? echo ? $_F_QUERY_STRING ) 12fi## if $PATH_INFO is not empty and contains definitions =, append it as well.# but replace slashes by ampersands#if echo $PATH_INFO | grep = /dev/null ; then?_F_PATH_INFO=$PATH_INFO//?if [ ${DEBUG:-0} -eq 1 ] ; then??( echo --Adding Path Info--??? echo ? $_F_PATH_INFO ) 12?fi?while [ $_F_PATH_INFO != -a $_F_PATH_IN
文档评论(0)