您的位置:程序门 -> 其他开发语言 -> 脚本语言(perl ,python)



因为才接触perl,问个提示符的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


因为才接触perl,问个提示符的问题
发表于:2007-01-24 11:11:24 楼主
用telent登录后的提示符是   "wlan[0,0]-> "   ,此时可以使用命令进行控制。然后因为要使用别的环境,随后会更换提示符为 "aa123456> ",其中123456是变化的,这个时候就会出现timed-out的情况,请问如何处理。
发表于:2007-01-24 13:09:201楼 得分:0
我再写详细点,请各位不吝赐教。

sub   setcli   {
      $t   =   new   net::telnet   (timeout   =>   10,
                                                  telnetmode   =>   false,
                                                  prompt   =>   '   m/(-> )/i ');                                                    
      $t-> open( "192.168.1.1 ");
      $t-> login($username,   $passwd);   #此时的提示符 "wlan[0,0]-> "
      $t-> cmd( "cli ");   #此时提示符会变成 "aa123456> ",所以在这行执行时会出现timed-out
      $t-> login($cliuser,$clipasswd);#此时程序已经跳出,没有执行到这行
    }

请问如何处理,才能顺利的执行下去,谢谢
发表于:2007-01-24 18:16:362楼 得分:0
不太懂……
发表于:2007-02-19 21:38:413楼 得分:0
try   this:

$t-> login(.....);
$old   =   $t-> prompt( '/^aa\d+> / ');       #   change   prompt   pattern   to   "aa123456 "
$t-> cmd( "cli ");
....
....
$t-> prompt($old);       #   restore   the   prompt   pattern   to   "-> "
发表于:2007-03-01 14:33:134楼 得分:0
直接把匹配符修改为 '> '不就行了吗?
$t   =   new   net::telnet   (timeout   =>   10,
                                                  telnetmode   =>   false,
                                                  prompt   =>   '/[\$%# <>   ]   ?$/ ';     )
基本上所有设备都能登陆了


快速检索

最新资讯
热门点击