html-关于linux下cgi使用expect的问题

问题描述

关于linux下cgi使用expect的问题

我有一个程序 在终端下使用正常

我希望给它做一个html页面 因此html页面需要调用cgi脚本
我的cgi脚本是用shell写的 中间调用了expect的命令
因为我的程序其中一步需要输入密码
但是一直不能实现我的需求
脚本在中间会停住不动。。。(我不知道应该如何形容它)
屏幕显示是这样的

root@nicole-virtual-machine:/usr/local/apache/cgi-bin# ./decrypt
Content-type: text/html

spawn ./ibe decrypt 410909971@qq.com < 2.txt >3.txt
private key password: 2222
(暂停一会 程序自己就跳出来了 )
eofroot@nicole-virtual-machine:/usr/local/apache/cgi-bin#
3.txt文件也没有生成。
下面是我的CGI脚本 恳请大神指导 谢谢!
#! /bin/bash

echo Content-type: text/html

echo ""
echo ""

eval /usr/local/apache/cgi-bin/proccgi.sh $*

cd /home/nicole/ibe

expect<<!
spawn ./ibe decrypt 410909971@qq.com < 2.txt >3.txt
expect "private key password:"
send "2222r"
expect eof
send_user "eof"
!

解决方案

关注着问题的解决 ,,,具有借鉴意义啊

解决方案二:

建议在server端用ps先确认,是停在bash脚本里,还是停在expect脚本里。

解决方案三:

./ibe decrypt程序,是从哪个设备获取private key password的?

一种可能性是标准输入,由于已经<2.txt进行了重定向,那么只能从2.txt里去获取key。
另外一种可能性是程序内部从/dev/tty读取,那么就需要expect把2222送到这个设备。在这种情况下,应该使用expect_tty和send_tty.

PS,还需要考虑 ./ibe decryp把"private key password:"这条prompt送到tty还是送到stdout(已经>3.txt)

解决方案四:

另外,expect/spawn的命令行是不支持shell重定向的,这样的,实际传递给./ibe 6个参数。后面4个是两个重定向符号,以及两个重定向文件。
如果需要的,换成spawn bash -c "you_cmd_with_io_redirection output"

时间: 2024-11-08 23:28:42

html-关于linux下cgi使用expect的问题的相关文章

Linux下APACHE&amp;PHP&amp;MYSQL&amp;CGI修改版_unix linux

根据一个自称自己经验所得的混蛋文章改的 许多文章结合起来,嘿嘿 MOD_PERL,FASTCGI那一栏我没有调试,因为不喜欢CGI.CHMOD MYSQL那一栏两次都是卡住过,如果有问题,可以来回做做实验.  Linux下apache+mysql+php^^^^^^^^(修改版)  唉,网上如此多的文章,版本居然这么多,并且多多少少存在着一些毛病,解决毛病及错误用了自己一天的时间,修改些错误的地方,最后的版本就是下面的了  apache1.3.24+php4.21+mysql3.23.49+op

linux下用expect脚本实现ssh 自动登陆服务器

又学了一个小招,使用 expect 脚本语言实现 ssh 自动连接到服务器,可以自动输入密码.因为每次使用 ssh root@xx.xx.xx.xx 连接服务器,都要手动输入一遍密码,有没有办法自动输入密码呢? 在网上搜索了一下,果然有办法,有一种脚本语言 expect ,它的作用就是能与交互式程序进行"可程序化"会话,比如自动输入密码,碰到"password"字符就会自动输入密码. 首先要安装 expect 脚本程序,不过在 Macbook 中自带了.比如 Cen

Linux下Tomcat与Apache Web服务器整合

apache|web|web服务|web服务器 1.引言      基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以TCP/IP协议为基础.以Web为核心的企业内部网,用户通过低成本.简单易用的客户浏览器就能随时随地到企业的Web站点上查阅自己所需的数据.浏览器客户端操作界面的一致性避免了C/S模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方便地通过Internet同外界联系:同时,Web信息动态的.交互式的发布方式从根本上

在Linux 下 访 问MS SQL Server 数 据 库(转载)

server 宁 波 保 税 区 官 委 会 计 算 中 心 董 保 华 ---- Linux 作 为 一 个 免 费 的Unix 类 操 作 系 统, 以 其 开 放 性 源 代 码. 多 任 务.X window 等 特 点 为 众 多 的 用 户 所 采 用, 并 有 很 多 企 业 采 用Linux 来 作 为 其 内 部 网 的 全 功 能 服 务 器(WWW,FTP,Email.DNS). 企 业 的 内 部 网 不 仅 要 提 供 文 本 信 息 的 访 问, 还 要 能 提 供

在Linux下访问MS SQL Server数据库(转)

server|访问|数据|数据库 在Linux下访问MS SQL Server数据库 ---- Linux 作 为 一 个 免 费 的Unix 类 操 作 系 统, 以 其 开 放 性 源 代 码. 多 任 务.X window 等 特 点 为 众 多 的 用 户 所 采 用, 并 有 很 多 企 业 采 用Linux 来 作 为 其 内 部 网 的 全 功 能 服 务 器(WWW,FTP,Email.DNS). 企 业 的 内 部 网 不 仅 要 提 供 文 本 信 息 的 访 问, 还 要

在Linux下访问MS SQL Server数据库

server|访问|数据|数据库 ---- Linux 作 为 一 个 免 费 的Unix 类 操 作 系 统, 以 其 开 放 性 源 代 码. 多 任 务.X window 等 特 点 为 众 多 的 用 户 所 采 用, 并 有 很 多 企 业 采 用Linux 来 作 为 其 内 部 网 的 全 功 能 服 务 器(WWW,FTP,Email.DNS). 企 业 的 内 部 网 不 仅 要 提 供 文 本 信 息 的 访 问, 还 要 能 提 供 对 企 业 关 系 数 据 库 中 的

Linux下Tomcat与Apache Web服务器的整合

1.引言基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以TCP/IP协议为基础.以Web为核心的企业内部网,用户通过低成本.简单易用的客户浏览器就能随时随地到企业的Web站点上查阅自己所需的数据.浏览器客户端操作界面的一致性避免了C/S模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方便地通过Internet同外界联系:同时,Web信息动态的.交互式的发布方式从根本上改变了企业的服务质量,增加了企业的商业机会.在许多用户看来,

linux下使用squid和squidGuard配置代理服务器

前言: 本文主要介绍了在linux使用squid和squidGuard配置代理服务器,以www代理服务为例介绍如何过滤有害站点和限制用户对internet的访问. 一. 介绍 Squid是linux下最为流行的代理服务器软件,它功能强大,支持对HTTP,FTP,Gopher,SSL和WAIS等协议的代理;设置简单,只需对配置文件中稍稍改动就可使代理服务器运转起来.而且Squid具有页面缓存功能,它接收用户的下载申请,并自动处理所下载的数据.也就是说,当一个用户象要下载一个主页时,它向Squid发

Linux下组建J2EE环境(四) 安装Tomcat

环境:VirtualBox4.1 + RedHat Linux 6 a.  下载Tomcat for Linux 下载地址: Apache Tomcat 6:http://tomcat.apache.org/download-60.cgi Apache Tomcat 7:http://tomcat.apache.org/download-70.cgi b.   制作包含 Tomcat安装包的ISO文件(推荐使用WinISO,操作方便),如mypackage.iso,把mypackage.iso挂