2013-10-31 52 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做的例子)