Ich verwende gets
, um die Ausgabe meines Skripts anzuhalten, bis der Benutzer die Eingabetaste drückt. Wenn ich keine Argumente an mein Skript weitergebe, funktioniert es gut. Allerdings, wenn ich alle Argumente an mein Skript übergeben bekommt dann stirbt mit dem folgenden Fehler:Warum wird ein Fehler ausgegeben, wenn Argumente an mein Ruby-Skript übergeben werden?
ruby main.rb -i
main.rb:74:in `gets': No such file or directory - -i (Errno::ENOENT)
from main.rb:74:in `gets'
...
Die Fehlermeldung das Argument zeigt ich an das Skript übergeben. Warum sollte man sich ARGV anschauen?
Ich verwende OptionParser, um meine Befehlszeilenargumente zu parsen. Wenn ich parse!
anstelle von parse
verwende (damit es Sachen entfernt, die es von der Argumentliste analysiert), dann funktioniert die Anwendung gut.
So sieht es aus wie gets liest aus ARGV aus irgendeinem Grund. Warum? Wird das erwartet? Gibt es einen Weg, um es nicht zu tun (tun gets()
hat nicht geholfen).