加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

简单perl脚本

发布时间:2020-12-16 00:15:12 所属栏目:大数据 来源:网络整理
导读:#! /usr/bin/perl use IPC::Open3; use strict; use warnings; my $patchdir = "patch2.diff"; my $found = 0; sub runstr { ?my @cmd=@_; ?print "cmd=@cmdn"; ?local $/; ?local (*PIPE); ?open3(fileno STDIN,*PIPE,"/dev/null",@cmd); ?my $output = P

#! /usr/bin/perl

use IPC::Open3;
use strict;
use warnings;

my $patchdir = "patch2.diff";
my $found = 0;

sub runstr {
?my @cmd=@_;
?print "cmd=@cmdn";
?local $/;
?local (*PIPE);
?open3(fileno STDIN,*PIPE,">/dev/null",@cmd);
?my $output = <PIPE>;
?close PIPE or $!==0 or die "can't run @cmd:$!n";
?print "output: $outputn";
?return $output;?
}

sub findpatch{
?my ($cmd1,$cmd2,$cmd3) = @_;

?print "cmd1=$cmd1,cmd2=$cmd2,cmd3=$cmd3n";
?my $current = runstr("pwd");
?$current =~ s/n//g;
?print "current:$currentn";
?chdir($cmd1);
?my $out = runstr("cat",$cmd2);
?my $obj = $out =~ s/n//g;
?print "obj:$obj,out:$outn";
?my $outfiles = runstr("cat",$cmd3);
?$outfiles =~ s/n//g;
?print "outfiles:$outfilesn";
?foreach my $in (split//,$outfiles) {
??print "in:$inn";
??for (split//,$out) {
???print "_sdddd:$_n";
???if ($_ eq $patchdir) {
????last;
???}
???-e "$_/$in" or next;
???$found = 1;
???print "$_:found=$foundn";???
??}
??if ($found) {
???last;
??}
?}
?chdir($current);
?return $found;
}

if (findpatch("/home/xuan/linux/.pc","/home/xuan/linux/patches/series","/home/xuan/linux/patchfiles/files")) { ?print "have found patchn"; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读