[perl]Getopt関数は、ユーザーパラメータの使用を受信します.
10539 ワード
linuxでは、perlの制御パラメータに関する関数を理解するために、プログラムにパラメータを追加する必要があります.getopt.linuxにあるパラメータには2つの形式がある.一つは-helpで、もう一つは-h.つまり-と-の別れです.-完全なパラメータを表します.-簡略化パラメータを表す.
perlにもこの2種類がある.
Getopt::Stdモジュールの機能:perlコマンドラインで受け入れられるパラメータを初期化し、コマンドラインパラメータの解析を簡略化します.
簡略化されたパラメータの例:
[root@mail test]# ./getopt.pl -a aa -b bb -c cc
$opt_a =>; aa
$opt_b =>; bb $opt_c =>; cc
完全なパラメータ
パラメータ付き※パラメータタイプ:整数、浮動小数点数、文字列
GetOptions( ‘tag=s’ =>\$tag );‘=’このパラメータを表すには必ずパラメータ値がある、もし‘を改用するならば:'はパラメータ値‘s’が伝達文字列パラメータを表す必要はない、‘i’表に整数パラメータを伝達するならば、‘f’表に浮動小数点数example:testを伝達する.pl –tag=stringortest.pl –tag string
パラメータ
GetOptions ("library=s"=>\@libfiles);パラメータは@tagorGetOptions("library=s@"=>$libfiles)に渡されます.パラメータは@$tagexample:testに渡されます.pl –library lib/stdlib –library lib/extlib
パラメータ別名GetOptions('length|height=f’=>$length);最初の名前はprimary name、その他の名前はalias(複数のalias名が使用可能)hashパラメータを使用する場合はprimary nameをkey値として使用します.
パラメータの略称と大文字と小文字GetOptions(‘length|height=f’=>$length,‘head"=>$head);特に設定されていない場合、Getoptはパラメータの大文字と小文字を無視します.つまり、-l or-Lは同じパラメータを指します(-length)
パラメータを渡さないオプション、すなわちいくつかのスイッチタイプについては、第1部の後に「!」を接続できます.これは、このオプションが引数を受信しないことを示しますが、前にnoを付けることで負にすることができます(たとえば、「more」オプションの-nomore).「!」でなければ、「+」ではなく、出現するたびに変数が増加することを示します.オプションがコマンドラインに表示されると、関連する変数は1に設定されます.負のオプションが表示されると、関連する変数は0に設定されます.
hashパラメータ値(名前とパラメータ値がある)GetOptions(「define=s」=>%defines);orGetOptions ("define=s%"=>\$defines);example:test.pl –define os=linux –define vendor=redhat
perlにもこの2種類がある.
Getopt::Stdモジュールの機能:perlコマンドラインで受け入れられるパラメータを初期化し、コマンドラインパラメータの解析を簡略化します.
簡略化されたパラメータの例:
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl -w
use strict;
use Getopt::Std;
use vars qw($opt_a $opt_b $opt_c);
getopts('a:b:c:');
print "\$opt_a =>; $opt_a
" if $opt_a;
print "\$opt_b =>; $opt_b
" if $opt_b;
print "\$opt_c =>; $opt_c
" if $opt_c;
出力は次のとおりです.[root@mail test]# ./getopt.pl -a aa -b bb -c cc
$opt_a =>; aa
$opt_b =>; bb $opt_c =>; cc
完全なパラメータ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl
use Getopt::Long;
Getopt::Long::GetOptions(
'page=i' => \$page,
'onoff!' => \$onoff,
'help' => \$wants_help,
'name=s' => \$name,
'number:i' => \$number);
}
if(defined($page)){ print "page flag set to $page "
}if(defined($onoff)){
print "onoff flag set to $onoff ";
}
if(defined($wants_help)){
print "help flag set to $wants_help ";
}
if(defined($name)){
print "name flag set to $name ";
}
if(defined($number)){
print "number flag set to $number ";
}
./getlong.pl -name AAAname flag set to AAA パラメータ付き※パラメータタイプ:整数、浮動小数点数、文字列
GetOptions( ‘tag=s’ =>\$tag );‘=’このパラメータを表すには必ずパラメータ値がある、もし‘を改用するならば:'はパラメータ値‘s’が伝達文字列パラメータを表す必要はない、‘i’表に整数パラメータを伝達するならば、‘f’表に浮動小数点数example:testを伝達する.pl –tag=stringortest.pl –tag string
パラメータ
GetOptions ("library=s"=>\@libfiles);パラメータは@tagorGetOptions("library=s@"=>$libfiles)に渡されます.パラメータは@$tagexample:testに渡されます.pl –library lib/stdlib –library lib/extlib
パラメータ別名GetOptions('length|height=f’=>$length);最初の名前はprimary name、その他の名前はalias(複数のalias名が使用可能)hashパラメータを使用する場合はprimary nameをkey値として使用します.
パラメータの略称と大文字と小文字GetOptions(‘length|height=f’=>$length,‘head"=>$head);特に設定されていない場合、Getoptはパラメータの大文字と小文字を無視します.つまり、-l or-Lは同じパラメータを指します(-length)
パラメータを渡さないオプション、すなわちいくつかのスイッチタイプについては、第1部の後に「!」を接続できます.これは、このオプションが引数を受信しないことを示しますが、前にnoを付けることで負にすることができます(たとえば、「more」オプションの-nomore).「!」でなければ、「+」ではなく、出現するたびに変数が増加することを示します.オプションがコマンドラインに表示されると、関連する変数は1に設定されます.負のオプションが表示されると、関連する変数は0に設定されます.
hashパラメータ値(名前とパラメータ値がある)GetOptions(「define=s」=>%defines);orGetOptions ("define=s%"=>\$defines);example:test.pl –define os=linux –define vendor=redhat