期望 SSH 脚本运行,但不显示所有输出


expect ssh script runs but doesn't show all of the ouput

我有一个期望的SSH脚本,该脚本是从运行PHP脚本的HTML页面执行的。脚本运行正常,但我在IE屏幕上看不到它的所有输出。有什么建议吗?

#!/usr/bin/expect 
set timeout -1
set max_match 10000
set var1 [lindex $argv 0]
set var2 [lindex $argv 1]
set var3 [lindex $argv 2]
set var4 [lindex $argv 3]
spawn ssh -q -o StrictHostKeyChecking=no user@host
expect "Password:"
send "XXXX'r"
expect -re "user@host>"
send "[join $argv]'r"
expect -re "]$"
send "exit"
interact

使用 phpseclib,一个纯 PHP SSH2 实现...

<?php
include('Net/SSH2.php');
$ssh = new Net_SSH2('user@host');
if (!$ssh->login('user', 'XXXX')) {
    exit('Login Failed');
}
echo $ssh->read("user@host>");
$ssh->write("[join $argv]'r");
echo $ssh->read("]$");
$ssh->write("exit");
?>

这是基于您的代码。如果我是你,我会尝试用 ' 替换 ''r,我也会尝试在退出后添加一个 '。