告発/再審請求

Just another WordPress.com site

Rubyのコマンドラインオプション処理(optparse)

leave a comment »

class OptionParser.

 ややこしいですが、ある程度基本的なところは理解できてきました。使わないでいるとすぐに忘れそうなのでメモしておきます。

#!/usr/bin/ruby -Ku

require ‘optparse’

chk=false
OptionParser.new {|opt|

opt.on(‘-a VAL’) {|v|
chk = v; p “こちらは[]がないので引数は必須になっています。値をありがとうです。→ #{v}”
}
opt.on(‘-b’) {|v| chk=v; p “真偽値は、#{v}です。よろしくです!” }
opt.on(“-n”, “–nameset VALUE”, {“hi” => “hirono_hideki”, “ks” => “kokuhatu_hirono”}){|w|
p “こちらは[]がないので引数は必須になっています。値をありがとうです。→ #{w}”
}
opt.on(“-o”, “–osset [VALUE]”, {“ln” => “Linux”, “ub” => “Ubuntu 11.04”}){|w|
p w ||= “未定義です。引数はオプションなので代わりに入れました。よろしくです!”
}
opt.parse!(ARGV)
}

if (chk) then
p “#{chk} OK\n”
end

#実行例:
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -a xxx
#”こちらは[]がないので引数は必須になっています。値をありがとうです。→ xxx”
#”xxx OK\n”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -b
#”真偽値は、trueです。よろしくです!”
#”true OK\n”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -n ks
#”こちらは[]がないので引数は必須になっています。値をありがとうです。→ kokuhatu_hirono”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -o
#”未定義です。引数はオプションなので代わりに入れました。よろしくです!”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -o “値です。”
#”未定義です。引数はオプションなので代わりに入れました。よろしくです!”
#u9x@G31M-U1104:~/tmp % ./optparse3.rb -o ln
#”Linux”
#u9x@G31M-U1104:~/tmp %

Written by 廣野秀樹

2011/05/14 @ 10:43

カテゴリー: Ruby

コメントを残す