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 オプション なし