shell脚本--初始CGI

  cgi按照百度百科的定义,如下:

  CGI 是Web 服务器运行时外部程序的规范,按CGI 编写的程序可以扩展服务器功能。CGI 应用程序能与浏览器进行交互,还可通过数据库API 与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据。格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的C、C ++、VB 和Delphi 等。CGI 分为标准CGI 和间接CGI两种。标准CGI 使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。间接CGI 又称缓冲CGI,在CGI 程序和CGI 接口之间插入一个缓冲程序,缓冲程序与CGI 接口间用标准输入输出进行通信。

  

  上面这一段话第一次接触cgi,可能不懂到底什么意思,下面举一个例子方便理解。

  以Apache为例,apache的根目录里面有一个文件夹为/cgi-bin,在配置文件httpd.conf中搜索cgi

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
</IfModule>

<IfModule cgid_module>
    #Scriptsock cgisock
</IfModule>

<Directory "/usr/local/apache/cgi-bin">
    AllowOverride All
    Options None
    Require all granted
</Directory>

  进入cgi-bin目录下,创建一个文件,文件名为index.cgi,文件扩展名为.cgi,这个和php文件的扩展名是.php是一样的。

  index.cgi的内容如下:

  

#!/bin/bash
#index.cgi

echo "Content-Type:text/html;charset=utf-8"
echo

echo "hello world"

  然后在浏览器中访问localhost/cgi-bin/index.cgi,你就会看到结果如下:

然后将index.cgi的内容改一下:

#!/bin/bash
#index.cgi

echo "Content-Type:text/html;charset=utf-8"
echo

mysql="mysql -uroot -proot"
sql="show databases"
$mysql -e "$sql"

  浏览器运行如下:

  其实,从上面的例子中,你就会得出一点结论,cgi就和php类似,只不过php文件中使用的使用php的语法,cgi中使用的shell命令,但是,都可以通过浏览器来运行脚本,获得结果。

原文地址:https://www.cnblogs.com/-beyond/p/8564108.html

时间: 2024-11-05 22:32:40

shell脚本--初始CGI的相关文章

自己敲过的一些简单shell脚本

敲过的一些简单脚本,把他们贴上来偶尔看看,过不了多久应该就会觉得非常小儿科吧,不过应该会对shell脚本的流程控制理解有些帮助. #!/bin/bash//p=176.202.52.////for i in $(seq 1 254)//for ((i=1;i<=5;i++))//do// ping -c2 -i0.1 -w1 $p$i &> /dev/null//if [ $? -eq 0 ];then// echo "$p$i neng ping tong "//

shell脚本编程的选择分支结构

选择执行结构: if语句单分支结构:如果条件为真,则执行then后的命令,否则,不做任何操作: if CONDITION :then STATEMENT fi 或 if CONDITION ; then STATEMENT1 STATEMENT2 ... fi 注意:想要执行then后面的STATEMENTS,前提条件是CONDITION部分为真: if语句的双分支结构:如果条件为真,就执行then后面的命令:否则就执行else后面的命令: if CONDITION ; then STATEME

shell脚本应用(三)

防伪码:长风破浪会有时,直挂云帆济沧海 shell脚本应用(三) 前言:当面对各种列表重复任务时,使用if语句已经难以满足要求,而顺序编写全部代码更是显得异常繁琐,困难重重.使用循环.分支等其他程序控制结构,从而能够轻松完成更加复杂.强大的功能. 1. 使用for循环语句(读取不同的变量值,用来逐个执行同一组命令) 1) 根据姓名列表批量添加用户 准备员工列表文件users.txt,然后编写一个名为uaddfor.sh的脚本,从users.txt文件中读取各用户名称,重复执行添加用户,设置初始密

shell 脚本-符号-基础语法

为了便于识别  建议 以.sh 结尾 shell脚本 可以放上所有的命令行的指令(源于bash) shell脚本 是 解释型语言      c/c++ 是编译型语言 下面用到的 shell代码sh_1.sh #!/bin/bash cd ../ ls pwd 解释型脚本的执行过程: script.sh 是文本文件,根本没有代码段和 _start  函数 , exec 怎么执行. 解释: Shell会fork 一个子进程并调用 exec执行 ./script.sh这个程序,exec 系统调用应该把

Linux中的shell脚本编程——函数

概述: 本章节将总结while,for循环语句的特殊用法,在不同的场景当中,更能发挥其功能和价值.除此之外,还会介绍一种特殊的循环语句select语句,实现菜单的作用.最重要的是讲解shell脚本编程中函数的用法.这些内容都要熟练掌握. 一.循环语句的特殊用法: 1.while循环的特殊用法(遍历文件的每一行): □语法:while read line; do 循环体 done < /PATH/FROM/SOMEFILE □意义:依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将

shell脚本须知

什么是shell脚本,首先它是一个脚本,并不能作为正式的编程语言,说白了就是shell脚本就是一些命令的集合. 凡是自定义的脚本建议放到/usr/local/sbin/目录下,这样的好处是方便管理和维护,且利于以后交接给接替你的管理员. shell脚本的结构 #cat first.sh #! /bin/bash ## This is my first shell script. date echo "Hello world!" 脚本要以#! /bin/bash开头,代表的意思:该文件是

Linux shell脚本流程控制

博主搬家至51CTO,初来乍到,请多指教. 此次我们来通过实例解析Linux shell脚本流程控制 Linux shell脚本流程控制可分为三类:顺序执行,条件选择执行,循环执行 顺序执行:简单理解就是逐行执行脚本内容,逐行解读,逐行执行.(此处不做实例解析) 条件选择执行:可以理解为先进行某一条件的判断选择,再决定执行怎样的脚本内容.常见语句if case 条件选择语句:if if语句用法: 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件

Linux shell脚本编程详解及应用实例

什么是shell脚本? 1.shell脚本:是一种解释型语言,不需要提前进行编译,只需将代码转化成中间代码,边解释边运行,执行效率稍逊于编译型语言,跨平台性好.而编译型语言则需要提前进行编译转化为二进制文件,靠近底层硬件执行效率高,可移植性差. 2.shell的首行严格来说使用shebang机制:由#和!构成的字符序列,在类unix系统中程序的载入器将其后的内容,当做解释器的指令,并将载有shebang文件路径作为解释器的参数,且予以调用. shell及其他解释型语言的一般格式?  #!/bin

正则与shell脚本

Day01 计算机组成硬件-->内核[驱动]-->shell或图形-->人 汽车shellbash--宝马tcsh--吉利#cat /etc/shells bash-completion[rhel7] 命令和路径选项 /etc/profile 环境变量和启动程序/etc/bashrc  函数和别名/root/.bash_profile/root/.bashrc #vim /etc/profileHISTSIZE=1000    命令历史的条目echo "test" 标