我的HTML页面(只是一个捕获变量的表单)调用一个Perl脚本,该脚本调用带有变量的expect脚本,这反过来会产生一个Bitvise
控制台会话来做'东西'。
在命令行上,这非常有效。但是,当尝试运行网页时,期望调用似乎无法执行。
我必须设置IIS以允许CGI / Perl扩展,所以我想知道在我配置它之前,被调用的期望脚本是否会像Perl页面一样被阻止?
我想到的一个可能的解决方案是学习Perl Expect
模块语法而不是调用脚本,但是这让我想到是否允许从Web生成Bitvise
服务器的观点?
Perl文件从html中捕获变量,如下所示,这一切都有效:
use CGI qw(:standard);
$user = param('username') || '<i>(No input)</i>';
$pass = param('password') || '<i>(No input)</i>';
$host = param('device') || '<i>(No input)</i>';
然后是期望的脚本调用:
$expect = `C:\\Tcl\\bin\\tclsh.exe c:\\a-end\\template.expect $user $pass $host`;
这是期望的spawn:
spawn "C:\\Program Files \(x86\)\\Bitvise SSH Client\\stermc.exe" [lindex $argv 0]@172.25.89.100:4000
expect "assword:"
send "[lindex $argv 1]\r"
单击HTML页面将数据提交到Perl脚本(通过打印到日志文件确认),但也打印$!价值Inappropriate I/O control operation