2013-10-31 39 views
0

我打开了一个telnet会话,其中包含用户名和密码。我试图打开一个文件阅读,但它给了我一个错误,说“没有这样的文件或目录”,而我通过打印命令确认该文件在路径中。我们可以打开一个文件在telnet会话期间阅读吗?或者如何在telnet会话期间打开一个文件?这里是我的代码和文件是ab.txt:在perl中打开一个在telnet中读取的文件

use Net::Telnet; 
$t = new Net::Telnet (Timeout => undef, Dump_log=>"dump.log"); 
$username="sqa"; 
$password="4q2013"; 
$t->open("xx.xx.xxxx.com"); 
$t->login($username, $password); 
$cmd='cd '.'/projects/74/android-rfs/sys 
tem/app'; 
my $ldir="/projects/74/Android"; 

ipadd(); 
print [email protected][2]; 
print "Value of \$t is:$t\n"; 
@lines=$t->cmd($cmd) or die "Cannot perform cmd:$!"; 
print @lines; 
$t->cmd("cp $nmn.apklist.txt $ldir\n"); 

$cmd1='cd '.'/projects/74/Android'; 
@lines1=$t->cmd($cmd1); 
print @lines1; 
$req_apks="/projects/74/Android/ab.txt"; 
print "Value of \$req_apks is: $req_apks\n"; 

######### Installating APKs ################################ 

     $path="$ldir/latest_apks"; 
     @b= $t->cmd("cd $path\n"); 
     print "cd:@b\n"; 
     $t->cmd("./adb kill-server\n") or die "Cannot kill adb servers:$!"; 
     sleep(10); 
     $t->cmd("./adb start-server\n") or die "Cannot start adb servers:$!"; 
     sleep(10); 
     @line=$t->cmd("./adb devices\n"); 
     print "adb:@line\n"; 
     sleep(10); 
     @cnt=$t->cmd("./adb connect $ip_add\n") or die "Cannot connect adb to bo 
ard IP Address:$!"; 
     print @cnt; 
     sleep(5); 
open(F2, "$req_apks") or die "Cannot open APK Filelist file $req_apks:$!"; 
while (my $req = <F2>) 
     { 

     print "Installing new package $req\n"; 
     @b= $t->cmd("./adb install $req \n") or die "Cannot install:$!"; 
     print @b; 
     print @b; 
     sleep(3); 
     } 
#$t->close; 
$t->cmd("./adb disconnect $ip_add\n"); 
sleep(6); 
$t->cmd("./adb kill-server\n") or die "Cannot kill adb servers after install:$!" 
; 
sleep(10); 
close(F2); 
print "Listapk function ended\n"; 





sub  ipadd 
{ 
     $ip='xx.xxx.xx.xx'; 
     $ip_port='10005'; 
     $port = new Net::Telnet->new(Host=>$ip,Port=>$ip_port); 

     $port->write("ifconfig eth0\n"); 
while (my $line = $port->getline()) 
     { 
       if ($line=~/flags/) 
       { 
         @ipadd= split(" ",$line); 
         #print $line; 
         #print @ipadd[2]; 
         goto ln; 
       } 
       else 
       {} 
     } 
ln: 
$port->close; 
} 
~ 

回答

1

$ nmn只使用一次,所以文件可能根本不复制。

我认为你的问题会消失,如果你会添加“严格使用;使用警告;”在文件的开头,并将正确地用“my”声明你的变量。 (例如,您使用$ ldir做的例子)