linux shell cgi post,linux下shell处理cgi的方法--post get
web server获取网页上HTML的DOM对象信息发送来的信息,主要有get和post方法。
介绍原理的文章很多,但介绍实际应用到linux的shell中的文章很少。
1、get方法
①表单源码如下,有几个HTML对象作为传值对象。
CGI Test
Text field
Radio button
1
2
3
②cgi get脚本,使用环境变量QUERY_STRING传值。
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo "Sample CGI Output"
echo ""
echo ""
#echo "Environment variables"
#echo ""
env
#echo ""
#echo "========================================================="
#echo ""
#echo "Form variables :"
#echo ""
str=$QUERY_STRING
echo $str
# [ "${str%&}" = "$str" ] && str="$str&"
# pair=${str%%&*}
# var=${pair%=*}
# val=${pair#*=}
pair=${str##*&}
var=${pair%=*}
val=${pair#*=}
str=${str#*&}
echo "$pair"
echo "$var"
echo "$val"
echo "$str"
echo ""
#echo $val
if [ $val = "lighton" ];then
echo "select to open light"
fi
if [ $val = "lightoff" ];then
echo "select to close light"
fi
if [ $val = "rolling" ];then
echo "select to rolling light"
fi
echo ""
echo ""
echo ""
2、post方法
①表单源码
CGI Test
Text field
Radio button
1
2
3
Some text
②post传值时,使用环境变量CONTENT_LENGTH表示传输数据长度。
而实际内容需要从标准输入设备接收,这里使用命令“read pos -n CONTENT_LENGTH”,注意,接收个数需做限制。
#!/bin/sh
echo "Content-type: text/html"
echo ""
echo "Sample CGI Output"
echo ""
echo ""
echo "Environment variables"
echo ""
env
echo ""
echo "========================================================="
echo ""
echo "Form variables :"
echo ""
#echo $CONTENT_LENGTH
read pos -n CONTENT_LENGTH
#echo $pos
tmp=${pos%%&*}
#echo $tmp
tmp=${tmp#*=}
echo "Text_Field=$tmp"
tmpcur=${pos#*&}
#echo $tmpcur
tmp=${tmpcur%%&*}
tmp=${tmp#*=}
echo "Radio_Button=$tmp"
tmpcur=${tmpcur#*&}
tmp=${tmpcur%%&*}
tmp=${tmp#*=}
echo "Text_Area=$tmp"
echo ""
echo ""
本文参考http://blog.chinaunix.net/uid-21025382-id-168762.html,非常感谢,但原作对于post的处理存在错误之处,这里纠正出来。
相关文章:

福建工程学院计算机科学类投档线,2019年福建工程学院美术类本科专业投档分数线...
福建工程学院2019年美术类本科专业录取情况省份科类专业计划最高分最低分平均分江苏艺术综合环境设计5247.2241.2244.6视觉传达设计3244.2240241.8数字媒体艺术3247.2244.2246产品设计3243.8238.6241.1安徽艺术综合环境设计5728.7724.9726.9视觉传达设计4729726.5727.3数字媒体…

如何对正在运行的进程,进行heap profile
简单来说, 就是先preload上tcmalloc, 日常用用没啥问题, 当感觉出现问题时, gdb attach 上, 然后执行 call HeapProfilerStart("xxx") , 过一段时间, 再执行call HeapProfilerStop, 产出相应的profile文件, 然后detach出进程 以下为一些未整理的 link https://gperft…

linux 命令窗口美化,美化你的命令行终端Terminal
yuezhang.su 于 2009-05-13 18:20:47发表:太好了yuezhang.su 于 2009-05-13 18:20:47发表:太好了yuezhang.su 于 2009-05-13 18:20:47发表:太好了yuezhang.su 于 2009-05-13 18:20:46发表:太好了yuezhang.su 于 2009-05-13 18:20:46发表:太好了yuezhang.su 于 2009-05-13 18:20…

mac 显示隐藏文件
打开终端,输入:defaults write com.apple.finder AppleShowAllFiles -bool true 此命令显示隐藏文件defaults write com.apple.finder AppleShowAllFiles -bool false 此命令关闭显示隐藏文件命令运行之后需要重新加载Finder:快捷…

Android修改包名
1.直接Refactor ---> rename 2.修改build.gradle ---> applicationId 为新包名 3.修改后要注意XML中自定义控件的全名是否也改变了 参考:android studio 改包名转载于:https://www.cnblogs.com/jarvisyin/p/6634392.html

学计算机的好处处300字,学计算机的心得体会300字
学计算机的心得体会300字我们从一些事情上得到感悟后,可以寻思将其写进心得体会中,这么做可以让我们不断思考不断进步。那么好的心得体会都具备一些什么特点呢?以下是小编精心整理的学计算机的心得体会300字,欢迎大家分享。学计算…

洛谷 3519 bzoj 2213 Difference
联考考试考到了这个题,随机化40分,现在来秒掉它吧。 题意: 给一个字符串,求其中的一段,使得出现次数最多的字符与出现次数最少的字符的出现次数之差最大。 输入输出样例 输入样例#1: 复制 10 aabbaaabab 输…

linux 文件管理 教程,Linux文件管理
Linux文件管理本文介绍如何在Linux上创建文件、删除文件、复制文件、移动文件使用touch命令在linux上创建文件使用rm命令在linux上删除文件使用cp命令在linux上复制拷贝文件mv命令在linux上移动或重命名文件##文件简介Linux中文件可以分为普通文件、目录文件、链接文件、设备文…

ios cocopods 安装使用及高级教程
CocoaPods简介 每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如Java语言的Maven,nodejs的npm。随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,它的名字叫做:CocoaPods。http://co…

单片微型计算机概念及组成,中国民用航空飞行学院2014年微机原理与接口考研复习大纲...
中国民用航空飞行学院硕士研究生入学考试801《微机原理与接口》复习大纲第一部分 考试说明一、 考试性质《微机原理与接口》是中国民用航空飞行学院硕士生入学考试科目之一。它的评价标准是高等学校、科研院所的优秀本科毕业生能达到及格以上水平,以保证被录取者具…

【转】Jmeter常见问题
收集工作中JMeter遇到的各种问题1. JMeter的工作原理是什么?向服务器提交请求;从服务器取回请求返回的结果。2. JMeter的作用?JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ft…

linux的tar中ztvf,linux中的tar命令(2)
实例4:只将 /tar 内的 部分文件解压出来命令:tar -zxvf /opt/soft/test/log30.tar.gz log2013.log输出:[rootlocalhost test]# tar -zcvf log30.tar.gz log2012.log log2013.loglog2012.loglog2013.log[rootlocalhost test]# ls -al log30.ta…

xcode 消除警告
项目中引用大量的第三方代码时,这些代码很复杂,不要轻易去改动它,如果编译产生很多警告,该如何消除呢? 1. 最直接、最一劳永逸、最安全的方式,直接找到警告的那段代码,改为不警告。这个方式最安…

RoadMap
转载于:https://www.cnblogs.com/taogao3364/p/9616020.html

罗格斯大学电气与计算机工程专业怎么样,美国电子工程排名 - 电子计算机工程的研究生教育,特别是偏向电路设计方向,请问是美国罗格斯大学新布朗斯维克校区好还是清华...
美国电子工程排名 - 电子计算机工程的研究生教育,特别是偏向电路设计方向,请问是美国罗格斯大学新布朗斯维克校区好还是清华,1. 电子计算机工程的研究生教育,特别是偏向电路设计方向,请问是美国罗格斯大学新布朗斯维克…

Win10系列:VC++调用自定义组件1
通过20.9.1小节中的代码和步骤编写了一个名为"FilePickerComponent"的WinRT组件,接下来将在上一小节所新建的项目基础上,继续介绍如何在不同的语言所编写的应用中调用这个WinRT组件。 (1)JavaScript调用WinRT组件 在解决…

windows常用命令有哪些(整理)
windows常用命令有哪些(整理) 一、总结 一句话总结:其实这个好学,只要先弄懂主干,清除主干,那么枝叶的添加逻辑就很清除了 这种多内容的,散乱的,弄清除主干效率就高了 1、windows命令…

c语言定义字符类型变量的关键字,C语言数据类型
C语言关键字:也称保留字,是C语言预先定义的、具有特殊意义的单词。数据类型关键字(12个):(1)char:声明字符型变量或函数(2)double:声明双精度变量或函数(3)enum:声明枚举类型(4)float:声明浮点型…

mac tomcat https
一、HTTPS的基本工作原理: HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,…

计算机应用基础电子演示文稿系统行考作业,最新电大计算机应用基础形考PowerPoint答案...
.;.. 计算机应用基础/ ? 课程考核/ ? 模块4 PowerPoint 2010 电子演示文稿系统——客观题一.单项选择题1. 在PoewrPoint 中,“视图”这个名词表示( D )。A. 一张正在修改的幻灯片B. 一种图形C. 编辑演示文稿的方式D. 显示幻灯片的方式2. 在下列PowerPo…

数据结构(三) 用java实现七种排序算法。
很多时候,听别人在讨论快速排序,选择排序,冒泡排序等,都觉得很牛逼,心想,卧槽,排序也分那么多种,就觉得别人很牛逼呀,其实不然,当我们自己去了解学习后发现&a…

Codeforces ECR50 div2题解
A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long long ll read() {ll x0,f1;char cgetchar();while (c<0||…

开发ios的语言
iOS发展这么多年了,很多第三方语言都向开发一种自己的iOS,于是多种跨平台诞生了! Object-c、swift: 当然是开发iOS的首先,毕竟是苹果自己的东西,也是最流行、最适合开发ios的,无论是UI库、性能、…

c语言程序设计分段定时器,单片机C语言编程定时器的几种表达方式
原标题:单片机C语言编程定时器的几种表达方式吴鉴鹰单片机开发板地址店铺:【吴鉴鹰的小铺】地址:【https://item.taobao.com/item.htm?_uukgdp5a7629&id524088004171】单片机C语言编程中,定时器的初值对于初学者真的是比较不…

上交2017计算机专业就业,上海交通大学计算机科学与工程系(CSE)
经过多轮的意向调整,最终确定的生产实习去向结果公示(请见附件)。原则上,经公示后结果不做调整。生产实习执行时间从7月24日到8月27日,请目前尚未就课题开展明细跟导师联系的同学在7月24日之前务必联系导师。一、实习报告要求1、从教务网站&a…

树上倍增求lca
嗯~ o(* ̄▽ ̄*)o lca是树上两点的最近公共祖先。如果在同一个分支上就是更靠近根的那个点,否则就是大家一起向上走,第一次能都经过的那个点。 根据这两个性质,我们对于每次询问可以把一个向上走到根节点,标记…

ios app内嵌入http服务器
1.采用CocoaHTTPServer https://github.com/robbiehanson/CocoaHTTPServer 2.采用MongooseDaemon https://github.com/face/MongooseDaemon

编程模拟洗牌和发牌过程c语言,洗牌发牌模拟系统课程设计报告.doc
集美大学诚毅学院《高级语言程序设计》课程设计实验报告题目:洗牌和发牌模拟专业:计算机科学与技术班级:姓名:成绩:指导教师:完成日期:2008 年 6月 26 日一、目的C语言进行程设计的能力…

使用complete的图片属性检测图片是否加载完毕
转载于:https://www.cnblogs.com/zclx/p/6652545.html

学金融买计算机配置,我是学金融投资的计算机等级考试哪个方向对我工作有用...
你好:你的这种情况应该是系统调整或服务器维护造成的,在这两天还有很多网友无法进入主页,请耐心等待,新浪工作日人员会尽快将系统恢复! 祝顺利!多出好文章! 博客临时故障,用新浪各种…