rubyでコマンドオプションを受け取る optparse

rubyでコマンドオプションを受け取る optparse
基本 VALは受け取る変数.なんでもよい.
opt.on('-o VAL') -oオプションで変数を受け取る場合VALはvalでもhogehogedめお文字列ならOK. 引数なしは認めない
opt.on('-o') だと引数をうけとらず true or false が入る
opt.on('-o [VAL]') -oオプションで変数を受け取る場合VALはvalでもhogehogedめお文字列ならOK. 引数なしを認める

require 'optparse'
 option={}
opt=http://OptionParser.new 
opt.on('-o VAL'){|v| option[:o]=v} 
puts option[:o]

入力ファイルと出力ファイルの設定
test.rb

require 'optparse'
option={}
opt=OptionParser.new
opt.on('-o VAL'){|v| option[:o]=v}
opt.on('-i VAL'){|v| option[:i]=v}
opt.parse!(ARGV)
output_filename=option[:o]
input_filename=option[:i]
puts "input:"+input_filename
puts "output:"+output_filename

実行と出力

$ ruby test.rb -o test -i test2
input:test2
output:test

入力ファイルのデフォルト設定
test2.rb

require 'optparse'

option={}
opt=OptionParser.new
opt.on('-o VAL'){|v| option[:o]=v}
opt.on('-i [VAL]'){|v| option[:i]=v}

opt.parse!(ARGV)
output_file_header=option[:o]
total_text_file=option[:i]
if total_text_file.nil? then
        total_text_file='buumu_tot_kanrenbun3_str_base.csv'

end
        puts total_text_file
exit

実行例

  • i オプションあり

$ ruby test2.rb -o test -i test2
test2

  • i オプション なし

$ ruby test2.rb -o test
buumu_tot_kanrenbun3_str_base.csv