gen_parv.pl
来自「disksim是一个非常优秀的磁盘仿真工具」· PL 代码 · 共 64 行
PL
64 行
#!/usr/bin/perl# Generate a parv file from a template and some parameters# @DISKSPEC_FILE@ -- name of the diskspec file to source# @DISK_NAME@ -- name of the disk to instantiate from the spec# @DISK_LBNS@ -- number of lbns on the disk (stripe unit foo)if($#ARGV < 2) { print STDERR ("*** usage: gen_parv.pl <diskspec file> <disk name> <disk lbns>\n"); exit(1);}%subs = ( "\@DISKSPEC_FILE\@", "$ARGV[0]", "\@DISK_NAME\@", "$ARGV[1]", "\@DISK_LBNS\@", "$ARGV[2]" );$diskspec = $ARGV[0];open(DISKSPEC, "$diskspec") || die "couldn't open diskspec $diskspec";while(<DISKSPEC>) { chomp(); if(/.*source.*model/) { s/.*source//; s/,//; s/^ *//; s/ *$//; $model = $_; } elsif(/disksim_disk/) { s/.*disksim_disk *//; s/^ *//; s/ *\{ *$//; $diskname = $_; }}close(DISKSPEC);# print STDERR "*** $model $diskname\n";open(MODEL, "$model") || die;while(<MODEL>) { chomp(); if(/Block count/) { s/.*Block count.*=//; s/,//; s/^ *//; s/ *$//; $lbns = $_; }}close(MODEL);# print STDERR "*** $lbns\n";$subs{"\@DISK_LBNS\@"} = $lbns;$subs{"\@DISK_NAME\@"} = $diskname;while(<STDIN>) { foreach $k (keys(%subs)) { s/$k/$subs{$k}/; } print "$_";}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?