0

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

    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 $ip_add=@ipadd[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;
}
~
4

1 回答 1

1

$nmn 只使用了一次,所以文件可能根本没有被复制。

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

于 2013-10-31T07:39:58.780 回答