`
xcxinghai
  • 浏览: 34250 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

教你用shell写CGI程序

 
阅读更多

以前用shell写过一些cgi的例子。今天向大家介绍一下。

CGI是一种接口的标准,并不区分编程语言,也就是说,CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。CGI会将标准输出重定向到给http的response,返回给浏览器。

CGI严格的介绍,favicon公共网关接口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

分享到:
评论

相关推荐

    C语言写CGI程序详细教程

    CGI程序可以用任何编程语言编写,如Shell脚本语言、Perl、Fortran、Pascal、C语言等。但是,用C语言编写的CGI程序具有执行速度快、安全性高等特点。下面是关于C语言写CGI程序的详细教程。 一、CGI概述 CGI规定了...

    cgi角本教程

    Shell脚本是基于Unix/Linux命令行环境的编程语言,用于编写简单的CGI程序。在Shell CGI中,环境变量如QUERY_STRING、REQUEST_METHOD等提供了HTTP请求的关键信息。以下是一个简单的Shell CGI脚本示例: ```bash #!/...

    linux shell 编程教程

    2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find命令的例子 20 2.2 xargs 20 2.3 小结 21 第3章 后台执行命令 22 3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 ...

    shell教程-30章,下了之后会让你大吃一惊,相当好

    2.1.13 使用exec或ok来执行shell命令 19 2.1.14 find命令的例子 20 2.2 xargs 20 2.3 小结 21 第3章 后台执行命令 22 3.1 cron和crontab 22 3.1.1 crontab的域 22 3.1.2 crontab条目举例 23 3.1.3 crontab命令选项 ...

    cgi基础网络脚本教程

    - **服务器是否支持CGI脚本**:首先确认你的Web服务器是否配置了支持CGI脚本的能力。大多数现代Web服务器默认都支持这一功能。 - **脚本权限设置**:确保脚本具有适当的执行权限,并且放置在正确的目录中(通常是`...

    cgi脚本教程

    CGI脚本可以使用各种编程语言编写,如Perl,但本教程中还提到了使用shell脚本的可能性。CGI脚本与浏览器、服务器之间的交互如图29-1所示,它们通过HTTP协议进行通信。 **29.3 连接Web服务器** 使用URL(Uniform ...

    shell命令学习资料

    1. **cgi脚本(29).pdf**:CGI(Common Gateway Interface)脚本是一种让Web服务器与外部程序交互的方式,通常用Perl、Python或Shell编写。这份文档可能会讲解如何使用Shell编写CGI脚本,处理HTTP请求,并返回动态...

    shell编程和unix命令(21-30章)

    "029cgi 脚本.PDF"专注于CGI(Common Gateway Interface)脚本,这是一种使Web服务器与外部程序交互的方式,通常用于创建动态网页。 最后,"030常用shell命令.PDF"可能是一份命令参考,列举了常用的Unix/Linux命令...

    shell编程指南全套2

    CGI(Common Gateway Interface)脚本讲解,介绍了如何用Shell编写Web服务器上的CGI程序,以处理HTTP请求并生成动态网页。 通过学习这套指南,你将能够编写出更高效、更灵活的Shell脚本,提升你在Linux系统管理和...

    Shell学习宝典(30章大全)

    11. **CGI编程**:CGI(Common Gateway Interface)是Web服务器与外部程序交互的方式,这一章会介绍如何用Shell编写CGI脚本,实现动态网页。 12. **错误处理与调试**:讲解如何捕获和处理脚本运行时的错误,以及...

    LINUX与UNIX SHELL编程指南.rar

    《LINUX与UNIX SHELL编程指南》是一本深入浅出的教程,主要涵盖了在Linux和UNIX操作系统环境下,如何使用Shell脚本进行程序设计。Shell脚本是Linux/UNIX系统中的重要工具,它允许用户通过编写命令序列来实现自动化...

    linux shell

    在Linux环境中,Shell脚本可以作为CGI程序来处理HTTP请求,生成动态内容。 `019_Shell函数.pdf`专门讲解了如何在Bash Shell中定义和使用函数,这是编写可复用和模块化脚本的关键部分。通过函数,我们可以将复杂任务...

    shell编程中文

    在Shell编程中,**CGI脚本**(Common Gateway Interface)是将Web服务器与外部程序(如Perl、Python或Shell脚本)连接的关键技术。029_cgi脚本.pdf可能涵盖了如何创建和运行CGI脚本,以处理HTTP请求,实现动态网页...

    LINUX与UNIX SHELL编程指南(29-30)

    5. **CGI脚本**:029-cgi脚本.PDF可能详细讲解了Common Gateway Interface (CGI)的概念,它是Web服务器与外部程序交互的方式,常用于动态网页生成。这里可能包括了如何编写和运行CGI脚本,以及处理HTTP请求和响应。 ...

    nagios使用教程.pdf

    首先创建了一个名为nagios的用户,并设置了该用户的shell为/sbin/nologin,这意味着nagios用户不能直接登录系统,这通常用于运行守护进程和监控程序。 2. 创建安装目录: 为Nagios创建了一个安装目录/usr/local/...

    linux c一站式网页教程

    12. **HTML-chunk**:这部分可能包含将C语言和Linux知识应用于网页开发的示例,如使用C语言编写CGI(通用网关接口)程序,与Web服务器交互,生成动态网页内容。 通过学习本教程,读者不仅能够掌握Linux系统的基础...

    PERL编程24学时教程(book)

    9. **系统交互**:Perl可以直接调用操作系统命令,使用`system`、`exec`等函数与shell进行交互,执行外部程序。 10. **Web开发**:Perl有诸如CGI(Common Gateway Interface)和Mod_perl这样的工具,可以用于开发...

    PERL编程24学时教程

    13. **系统交互**:学习如何通过system、exec等函数与操作系统进行交互,调用外部程序和shell命令。 14. **Perl在Web开发中的应用**:简单介绍CGI(Common Gateway Interface)编程,以及更现代的Perl Web框架,如...

    Lisp 教程 teacher yourself scheme

    这部分介绍了如何使用Scheme编写Shell脚本: - **Hello, World! 再次演示**:简单的入门示例。 - **带有参数的脚本**:如何处理命令行参数。 - **示例**:实际应用场景。 ##### 17. CGI脚本(CGI Scripts) 这...

Global site tag (gtag.js) - Google Analytics