From: Minero Aoki
オプションを解析し、$OPT_xxx に値を設定します。
ロングネームのオプションや,引数を伴うオプションの指定をします。
また,オプションが指定されなかった場合のデフォルトの値を持たせたい場合は、
解析結果は全て "$OPT_指定した引数名" という名前のグローバル変数に
代入されることで示されます。
シングルオプションや引数を伴わないオプションが使用された場合は
例:
の中に
が入ってたりしたので、
このさい全面的に書き直してみました。
あと、英語版がないみたいなので、ついでに英語版も書きました。
-------------------------------------------------------------------
あおきみねろう
----Next_Part(Tue_Mar_28_14:05:04_2000_893)--
Content-Type: Text/Html; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=ja.getopts.html
getopts
書式
getopts(single_opts, *opts)
-fや-x(=-fx)のような一文字のオプションの指定をします。
オプションが-fと-xの2つの場合は
"fx"のように指定します。
また、このようなオプションがないときは必ずnilを指定して下さい。
--versionや--geometry 300x400、
-d host:0.0等がこれに該当します。
また、引数を伴う場合は末尾には":"をつけてください。
この例の場合、"version"、"geometry:"、
"d:"のようになります。
":"の後にそのデフォルトの値を指定します。
例えば、"geometry:80x25"のように指定します。
オプション解析
true、
使用されなかった場合はfalseがセットされます。
のように呼びだされ、実際の引数が
getopt( 'af', 'version' )
であった場合、
-a --version
のようにセットされます。返り値は 2 です。
$OPT_a = true
$OPT_f = false
$OPT_version = true
その他のオプションに対しては、その引数がセットされます。 オプションが指定されなかった場合は、 デフォルトの値が指定されていればその値で、それ以外は nil です。
例:
getopt( nil, 'd:', 'e:', 'geometry:80x25' )
のように呼びだされ、実際の引数が
-d pengo:0.0
であったとすると、
$OPT_d = 'pengo:0.0'
$OPT_e = nil
$OPT_geometry = '80x25'
また、-もしくは--が指定されていたら、
それ以降の引数の解析を行ないません.
実際にセットされたオプションの数を返します.
間違ったオプションが指定された場合はnilを返します.
Originated by
jammy@shljapan.co.jpanalize options and set value to global variables $OPT_xxxx
getopts(single_opts, *opts)
designate one character option like -f or -x(=-fx).
For example, if options is "-f" and "-x", designate "fx".
If application takes no character options, designate nil.
designate long option (like "--version") and/or
options which takes value (like "-o hello").
If options takes its value, give a option name with ":".
For example, "version", "geometry:",
"d:".
If options have default value, give an option name with
":DEFAULT_VALUE".
For example, "display:0.0", "geometry:80x25".
If getopts find - or --, getopts stops analizing.
Results are set to global variables like "$OPT_OPTION_NAME".
true or false for "flag" option (like "ls -l"), and
a string or nil for "value" option (like "ruby -c test.rb").
"getopts" returns a number of set options. If wrong option was given (from application user), returns nil.
when
getopt( 'af', 'version' )
ARGV = [ '-a', '--version' ]
result is:
$OPT_a = true
$OPT_f = false
$OPT_version = true
return value is 2.
when
getopt( nil, 'd:', 'e:', 'geometry:80x25' )
ARGV = [ '-d', 'pengo:0.0' ]
result is:
$OPT_d = 'pengo:0.0'
$OPT_e = nil
$OPT_geometry = '80x25'
Originated by
jammy@shljapan.co.jp