を与えられなかったとき、私はARGV
を使用して旗を作成する方法を理解しようとしてきたdefualtを実行していますは私が望む何を(私がoptparserについて知っている、私はそれを使用したくない)</p> <p>を旗を作り、どれもがARGV
def usage
$stderr.puts("Usage: #{File.basename}: [-f|u] <file/path/>")
exit
end
$file = nil
$help = usage
loop { case ARGV[0]
when '-f' then ARGV.shift; $file = ARGV.shift
when '-h' then ARGV.shift; $help = ARGV.shift
else
#No flag given, run program with "John" as the method argument
end }
def say_hi(name)
puts "Hi #{name}! How are you?!"
end
say_hi("John")
..何のフラグが、私はそれが立つように、プログラムを実行する指定されていない場合は、ヘルプを表示するには、ファイル、およびフラグをロードするためのフラグを作成され
例say_hi.rbを行うには
電流出力:
C:\Users\Jason\MyScripts>ruby say_hi.rb
Usage: say_hi.rb: [-f|u] <file/path/>
C:\Users\Jason\MyScripts>ruby say_hi.rb -f john.txt
Usage: say_hi.rb: [-f|u] <file/path/>
C:\Users\Jason\MyScripts>ruby sayhi.rb -h
Usage: say_hi.rb: [-f|u] <file/path/>
john.txt:
John
予想される出力:
#running without flag =>
ruby say_hi.rb
#<= Hi John! How are you?!
#running with -h flag(help) =>
ruby say_hi -h
#<= Usage: say_hi: [-f|u] <file/path/>
#running with the -f flag(file) =>
ruby say_hi -f temp/name_file.txt
#<= Hi John! How are you?!
私はこれをやって達成することができますどのように?
「say_hi.rb」とは何ですか? – sawa
@sawa混乱して申し訳ありません、より具体的な質問を編集しました。 – JasonBorne
あなたのコードはうまくいくように見えます。あなたはどんな問題を抱えていますか?ところで、 'FOO = BAR irb'を実行すると、irbでは' ENV ["FOO"]#=> "BAR" 'にアクセスできます。プログラムを早期に終了する必要がある場合は、 'exit'を使用してください。 –