Nowe posty

Autor Wątek: Perl+Expect - Problem ze zwracaniem  (Przeczytany 4619 razy)

Syster

  • Gość
Perl+Expect - Problem ze zwracaniem
« dnia: 2011-04-23, 14:49:26 »
Witajcie!
Mam problem. Piszę sobie skrypt w Perlu, który ma docelowo wyciągać pewne informacje routera. Wygląda on w tym momencie tak:
my $exp = new Expect;
$exp = Expect->spawn("telnet $hostname $port") or die "Cannot spawn";
$exp->log_stdout(1);
$exp->expect($timeout, 'router login: ');
$exp->send("$login\\n");
$exp->expect($timeout, 'Password: ');
$exp->send("$password\\n");
$exp->send("PS1=\\">\\"\\n");
$exp->send("uname\\n");
$exp->expect($timeout, $prompt);
$exp->expect(0);
$data_near=$exp->before();
$exp->send("$exit_cmd\\n");
$exp->soft_close();
print $data_near;
Zwraca on do zmiennej $data_near, wynik wykonania komendy. Niby jest ok, ale wynik działania tego skryptu to:
Trying 192.168.0.1...
Connected to router.
Escape character is '^]'.
router login: root
Password:
Tomato v1.28.8525 _RAF ND VPN
root@router:/tmp/home/root# PS1=">"
>uname
exit
Linux
>exit
Connection closed by foreign host.
"
>uname
Czyli, w $data_near znajduje się coś dziwnego:
"
>uname
Nic z tego nie rozumiem. Czy ktoś wie może o co chodzi?