対象:
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)

新着情報
【オープンソースソフトウェア環境構築】Apple silicon Macで開発環境を構築
【Rust Tips】Actix webでJSONをPOSTする
【Rust Tips】コマンドライン引数を取得する

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