perl减轻工作量(第一个perl脚本)
2010-05-27 12:55
169 查看
#!usr/bin/perl -w
use strict;
my $vmps="vmps";
my $bl=0;
my @department= qw/ develop general /;
my $usage = <<EOU;
usage :vmpsmac -a physical_address department
vmpsmac -d physical_address
vmpsmac -q physical_address
EOU
########################start sub #############################################
sub del_mac{
my($filename,$kw)=(shift,shift);
open ( VMPS, "+<", $vmps) or die "Can't access file.\n";
my @lines = <VMPS>;
s/.*$kw.*//s for @lines;
seek(VMPS,0,0);
print VMPS @lines;
truncate(VMPS,tell(VMPS));
close VMPS;
}
sub add_mac{
my($filename,$kw,$dept)=(shift,shift,shift);
open ( VMPS, "+<", $vmps) or die "Can't access file.\n";
my @lines = <VMPS>;
push @lines, "address $kw vlan-name $dept\n";
seek(VMPS,0,0);
print VMPS @lines;
truncate(VMPS,tell(VMPS));
close VMPS;
}
sub que_mac{
my($filename,$kw)=(shift,shift);
my $bee=0;
open ( VMPS, "+<", $vmps) or die "Can't access file.\n";
my @lines = <VMPS>;
foreach (@lines){
$bee =1 if /$kw/;
}
$bee?print "$kw is already exist!\n":print "$kw is not match\n";
close VMPS;
return $bee;
}
###################### end sub ###########################################
unless ($ARGV[0] =~ /-[adq]/){
print $usage;
exit;
}
unless ($ARGV[1] =~ /^([0-9A-F]{4}\.){2}[0-9A-F]{4}$/){
print $usage;
exit;
}
del_mac($vmps,$ARGV[1]) if $ARGV[0] eq "-d";
que_mac($vmps,$ARGV[1]) if $ARGV[0] eq "-q";
if ($ARGV[0] eq "-a"){
foreach (@department){
$bl =1 if /^$ARGV[2]$/;
}
unless ($bl){
print $usage;
exit;
}
add_mac($vmps,$ARGV[1],$ARGV[2]) if !($bl=que_mac($vmps,$ARGV[1]));
}
use strict;
my $vmps="vmps";
my $bl=0;
my @department= qw/ develop general /;
my $usage = <<EOU;
usage :vmpsmac -a physical_address department
vmpsmac -d physical_address
vmpsmac -q physical_address
EOU
########################start sub #############################################
sub del_mac{
my($filename,$kw)=(shift,shift);
open ( VMPS, "+<", $vmps) or die "Can't access file.\n";
my @lines = <VMPS>;
s/.*$kw.*//s for @lines;
seek(VMPS,0,0);
print VMPS @lines;
truncate(VMPS,tell(VMPS));
close VMPS;
}
sub add_mac{
my($filename,$kw,$dept)=(shift,shift,shift);
open ( VMPS, "+<", $vmps) or die "Can't access file.\n";
my @lines = <VMPS>;
push @lines, "address $kw vlan-name $dept\n";
seek(VMPS,0,0);
print VMPS @lines;
truncate(VMPS,tell(VMPS));
close VMPS;
}
sub que_mac{
my($filename,$kw)=(shift,shift);
my $bee=0;
open ( VMPS, "+<", $vmps) or die "Can't access file.\n";
my @lines = <VMPS>;
foreach (@lines){
$bee =1 if /$kw/;
}
$bee?print "$kw is already exist!\n":print "$kw is not match\n";
close VMPS;
return $bee;
}
###################### end sub ###########################################
unless ($ARGV[0] =~ /-[adq]/){
print $usage;
exit;
}
unless ($ARGV[1] =~ /^([0-9A-F]{4}\.){2}[0-9A-F]{4}$/){
print $usage;
exit;
}
del_mac($vmps,$ARGV[1]) if $ARGV[0] eq "-d";
que_mac($vmps,$ARGV[1]) if $ARGV[0] eq "-q";
if ($ARGV[0] eq "-a"){
foreach (@department){
$bl =1 if /^$ARGV[2]$/;
}
unless ($bl){
print $usage;
exit;
}
add_mac($vmps,$ARGV[1],$ARGV[2]) if !($bl=que_mac($vmps,$ARGV[1]));
}
相关文章推荐
- 我的第一个perl脚本
- Linux的第一个perl脚本
- perl 脚本学习
- Linux vSphere SDK for Perl 执行脚本报错
- perl脚本的运行与调试
- Java+Selenium3基础篇5-第一个自动化测试脚本
- 【Selenium1】第一个SeleniumWebdrive脚本
- 支持自动TOC超文本目录生成的chm转换器(perl脚本)
- 第一个图形化桌面上的脚本
- 《SED 单行脚本快速参考》的 perl 实现
- 脚本语言:Perl 5.11.0发布
- 第一个Mac shell 小脚本
- [PERL脚本] 学习笔记
- 我的第一个 AppleScript 脚本
- perl 发送邮件脚本
- 第一个shell脚本执行
- linux study 1-第一个shell脚本
- 第一个shell脚本
- perl实现blog备份的脚本代码
- Perl / Shell 脚本语言