p; send_user "Send a return...\n" send "\n" } 2 { puts stderr "Login time out...\n" exit 1 } } incr timeout_case } } }
}
proc do_exec_cmd {} {
set timeout 5 send "\n" expect "#" send "uname -p\n" expect "#" send "ifconfig -a\n" expect "#" send "exit\n" expect "login:"
send_user "\n\nFinished...\n\n"
}
if {$argc<2} {
puts stderr "Usage: $argv0 login passwaord.\n " exit 1 }
set LOGIN [lindex $argv 0] set PASS [lindex $argv 1]
spawn telnet 10.13.32.30 7001
do_console_login $LOGIN $PASS do_exec_cmd
close
exit 0
上面的脚本只是一个示例,实际工作中,只需要重新实现do_exec_cmd函数就可以解决类似问题了。 在例1中,还可以学习到以下Tcl的语法:
1. 命令行参数 $argc,$argv 0,$argv 1 ... $argv n
if {$argc<2} { puts stderr "Usage: $argv0 login passwaord.\n " exit 1 } 2. 输入输出 puts stderr "Usage: $argv0 login passwaord.\n "
3. 嵌套命令
set LOGIN [lindex $argv 0] set PASS [lindex $argv 1]
4. 命令调用 spawn t上一页 [1] [2] [3] 下一页 |