Ich habe versucht, herauszufinden, wie Flaggen ARGV
mit machen (ich weiß, über optparser, ich will nicht, es zu benutzen)Fahnen zu machen und defualt läuft, wenn keine ARGV gegeben
Was ich möchte, zu tun ist, eine Flagge zu machen, eine Datei zu laden, und eine Fahne, um die Hilfe zu zeigen, wenn kein Flag gegeben wird ich das Programm ausgeführt werden soll, wie es steht ..
Beispiel say_hi.rb:
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")
Stromausgang:
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
Erwartete Ausgabe:
#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?!
Wie kann ich dies erreichen zu tun?
Was ist 'say_hi.rb'? – sawa
@sawa Sorry für die Verwirrung, bearbeitet die Frage, um genauer zu sein. – JasonBorne
Ihr Code sieht für mich so aus, als würde es funktionieren. Welches Problem hast du? Übrigens, wenn Sie 'FOO = BAR irb' ausführen, dann können Sie in irb auf' ENV ["FOO"] # => "BAR" 'zugreifen. Wenn Sie Ihr Programm vorzeitig beenden müssen, verwenden Sie einfach 'exit'. –