如何实现参数化的自动登陆呢

如何实现参数化的自动登陆呢

在论坛上看到一段自动SSH 主机的代码:
#!/usr/local/bin/perl

use Expect;

my $timeout = 2;
my $delay = 1;
my $cmd         = "ssh";
my @params = qw/202.108.xx.xx -luser -p22/;
my $pass = "password";

$exp = Expect->;spawn($cmd, @params) or die "Can't spawn $cmd\n";

$exp->;expect($timeout, -re=>;'[Pp]assword:');
$exp->;send_slow($delay, "$pass\r\n");

$exp->;interact();
$exp->;hard_close();

exit 0;

如何实现参数化的SSH ?
修改:my @params = qw/202.108.xx.xx -luser -p22/;
为  my @params = qw/$IP -luser -p22/;    会报错

还有日志输出要如何定位呢?

谢谢


QUOTE:
原帖由 yuly 于 2008-2-28 12:27 发表
在论坛上看到一段自动SSH 主机的代码:
#!/usr/local/bin/perl

use Expect;

my $timeout = 2;
my $delay = 1;
my $cmd         = "ssh";
my @params = qw/202.108.xx.xx -luser -p22/;
my $pass = " ...

报什么错误?
qw //里面的变量是不会做替换的
my @params = qw/202.108.xx.xx -luser -p22/;

这样代码不会报错

my @params = qw/$IP -luser -p22/;    会报错,不认识IP变量,打印@params $ip 还是显示$ip 变量不能传进来
spawn($cmd, @params)  已经解决了,可以不要用数组传参数,直接spawn("ssh $ip -l${username} -p22"  就可以了 呵呵