use Expect; my $exp = new Expect; sleep(1); $exp->raw_pty(0); $exp->exp_internal(1); $exp->log_stdout(0); $exp->debug(1); my $exp = Expect->spawn("telnet 192.168.1.1"); sleep(2); $exp->send("root\n"); sleep(1); $exp->expect("assword"); sleep(1); $exp->send("password\n"); $exp->expect("cli>"); sleep(1); $exp->send("show product-info\n"); $exp->expect("--MORE--"); #$exp->send("show product-info\n" sleep(1); $exp->send(" "); while(0){ sleep(1); $exp->expect( [ qr'--MORE--'=>sub{ $exp->send(" "); exp_continue; } ], [qr'cli>'=>{break } ]); } $exp->debug(); $exp->soft_close(); |
#!/usr/bin/expect -f if { $argc != 3 } { send_user "usage: get_hwrtne_conf.exp ip user password\n" exit } set timeout 1 set TERM ANSI set SERVER [lindex $argv 0] set USERNAME [lindex $argv 1] set PASSWD [lindex $argv 2] spawn telnet expect "telnet> " send "open $SERVER\r" sleep 1 expect "login:" send "$USERNAME\r" sleep 1 expect "assword:" send "$PASSWD\r" sleep 1 expect "*>" send "show product-info\r" while (1) { sleep 1 expect { "*MORE*" { send " " } "*>" { break } } } send "quit\r" interact |
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |