対象:
CRuby
JRuby

コマンドライン(ARGV)のパース

コマンドラインのパースを簡単に行うにはOptionParserを使う。optparseをrequireし、onメソッドでオプションとそれが指定されたときの処理を記述する。permute!メソッド(またはparse!メソッド)で認識されたオプションはARGVから削除される。

onメソッドではショートオプション(-で始まる)、ロングオプション(--で始まる)等とそれがコマンドラインで指定されたときの処理(ブロック)を記述する。オプションの後に何か記述するとそれはオプションへの引数とみなされ、ブロックに渡される。オプションへの引数は[]で括ると省略可能となる。

また、onメソッドにはそのオプションの説明を記述することができる。オプションの後には、このスクリプトを--helpオプション付きで起動したときに表示される説明を記述できる。

require "optparse"

$flag_debug = false
$value = 10
$count = 0

ARGV.options {|opt|
  opt.on("-d", "--debug", "デバッグモード指定") {$flag_debug = true}
  opt.on("-r [V]", "rを指定") {|v| $value = v} # []で括るとVは省略可能となる
  opt.on("--count=N", "回数指定") {|n| $count = n} # ロングオプションは=を記述できる
  opt.permute!
}
p $flag_debug,$value,$count

-d -r 30 --count=3を指定してこのスクリプトを実行した結果は、

true
"30"
"3"

のようになる。--helpオプションを指定してこのスクリプトを実行すると使用方法が表示される。onメソッドでオプションの後に指定した文字列が--helpの出力に反映されている。

Usage: optparse_test [options]
    -d, --debug                      デバッグモード指定
    -r [V]                           rを指定
        --count=N                    回数指定
(2010/02/24)

新着情報
【iOS Objective-C, Swift Tips】アプリアイコンにバッジを表示(Swift)
【iOS Objective-C, Swift Tips】画像の向きを指定して保存する(Swift)
【iOS Objective-C, Swift Tips】UIImagePickerControllerの表示を日本語にする(Swift)

Copyright(C) 2004-2014 モバイル開発系(K) All rights reserved.
[Home]