Nowe posty

xx FirebirdSQL server w xinetd (1)
Wczoraj o 08:31:48
xx [SOLVED] Poczta Linux.pl (9)
2022-08-09, 15:09:29
xx Dostęp z komputerów z windowsem do plików udostępnionych na serwerze linux (samb (0)
2022-08-08, 20:27:55
xx brak uprawnienia do zamontowanej partycji ntfs - elementaryOS 6,1 (5)
2022-08-08, 06:36:07
xx Jak zainstalować sterowniki do karty sieciowej TP LINK WN350GD (1)
2022-08-04, 05:55:46
xx Ubuntu vs Fedora (1)
2022-07-26, 03:40:58
xx virtualization technology (1)
2022-07-25, 21:27:10
xx Migracja z centos 6 na centos 7 (3)
2022-07-25, 07:31:19
xx akonadi w KDE5 (10)
2022-07-22, 23:34:05
xx Alternatywa dla Delphi (7)
2022-07-22, 15:27:42

Autor Wątek: Perl+Expect - Problem ze zwracaniem  (Przeczytany 4393 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?