以前用shell写过一些cgi的例子。今天向大家介绍一下。
CGI是一种接口的标准,并不区分编程语言,也就是说,CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。CGI会将标准输出重定向到给http的response,返回给浏览器。
CGI严格的介绍,公共网关接口CGI(Common
GatewayInterface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
……
言归正传,下面详细介绍一下如何使用shell来写一个CGI。
对于CGI而言,最主要就是接收到用户的请求,从请求中,解析出get或者post方法传递过来的参数。这点,我认为也是对于初学者最麻烦的地方,这里提供一个已经完成这种功能的脚本—proccgi.sh(稍后会提供下载的网址)。这个脚本可以直接解析出get和post方法传过来的数据。
使用方法:
在CGI的shell脚本中调用eval `./proccgi.sh $*`语句,然后使用“$FROM_”和参数的key,就可以获得参数的值了,如task_id=”$FORM_taskid”。
上图就是一个最简单的shell的CGI程序了,从前台将taskid=XXXX,传给CGI程序。CGI中调用了proccgi.sh脚本,将taskid的值解析出来存放到变量FROM_taskid中。这样,就已经拿到taskid的值了。接下来print task_id,是将task_id的值输出到标准输出,到此CGI程序就全部结束了,CGI会将print到标准输出的内容全部当作http的response,返回给浏览器。
有人可能奇怪,这明明是个简单的shell的脚本。怎么就可以当作CGI来用呢。前面已经说过,CGI是一个接口的标准,只要程序的输出到标准输出的内容,第一行是“Content-type:text/html;charset=UTF-8\n”这种形式的,就可以当作CGI来使用。不相信的朋友,可以用这种语言试试。当然,写好的CGI必须放在apache的可执行目录下面啊。不然无法通过url访问到这个CGI。
最后关于CGI的命名,在公司,写完CGI之后,一般会将名字修改成XXXX.cgi。不管是脚本还是二进制程序,都可以这样修改它。其实这并没有什么规定,保留.exe、.sh或者.py,CGI照样可以执行。
其实说到底CGI就是后台一个可执行程序。
我的新博客地址:http://www.xinghaixu.com
分享到:
相关推荐
UNIX和Shell程序设计权威教程pdf
shell写cgi时候,解析参数的脚本proccgi.sh
UNIX和shell程序设计权威教程,学习shell的经典书籍
shell cgi list directory contents Surrounded by a Tags. shell-cgi输出被a标签包围的目录文件
简要介绍关于shell的一些基本知识,以及cgi脚本编程
模拟的shell程序,模拟的shell程序,模拟的shell程序
最简单最基本的shell脚本,很好的练习用代码。一共8个。附程序题目描述
《unix和shell程序设计权威教程 >>绝对好
收集了几个比较经典的shell 程序,希望大家相互学习使用
比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令。但是,system函数仅返回命令是否执行成功,而...
一. 实验目的: 1、 掌握unix下的基本操作以及程序的设计方法。 2、 掌握shell程序的设计方法 二. 实验内容: ...编写一程序,用do、if….fi、read、case语句写一个程序,实现备份的恢复的功能。
Unix系列shell程序编写(上) awk基础入门(5) Unix系列shell程序编写(下) Unix系列shell程序编写(中) shell游戏:俄罗斯方块 shell游戏:五子棋 shell游戏:老虎机 shell游戏:贪吃蛇 shell游戏:扫雷 初学者入门...
前一部分全面讲解了UNIX操作系统,包括UNIX操作系统、vi和ex编辑器、文件系统与文件操作权限、以及各种UNIX实用程序;后一部分深入介绍了各种类型的UNIX shell编程,涵盖了Korn shell、C shell等主要的shell类型。...
用PHP写SHELL教程 PHP与SHELL结合 体现PHP的强大功能
shell编写的一个考勤程序,使linux课程实验题目
一、实验目的 ...掌握Shell程序开发环境的使用;能根据Shell程序功能、安全管理方面的需求,设计Shell程序;通过组织或参与开源项目开发,掌握项目开发、管理的方法和技术;能口头表达项目开发情况。
Linux下Shell命令解释步骤,用C语言实现
getshell工具使用教程
shell编程入门,shell的处理过程分析,shell的语句分析,shell编程
轻松教你写守护进程, 设想:用一个shell查看一个后台运行的PHP程序是否非正常退出 如果退出,利用守护进程自动restart.