Die beiden vordefinierten Konstanten ARGV und ARGF behandeln die Konsolen-Argumente, die einem Ruby-Programm mitgegeben werden.
ARGVDas Array ARGV enthält alle Konsolen-Argumente, die dem Ruby-Programm mitgegeben wurden. Die Optionen für den Ruby-Interpreter und der Name des Ruby-Programms sind bereits entfernt. BeispielDer Dateiname ist "Schreibe_hello.rb".
Das Programm kann man auf eine dieser Varianten aufrufen: $ ruby Schreibe_hello.rb $ ruby Schreibe_hello.rb -t "HE!" $ ruby Schreibe_hello.rb -f "AndereDatei.txt" $ ruby Schreibe_hello.rb -t "HE!" -f "AndereDatei.txt" $ ruby Schreibe_hello.rb -f "AndereDatei.txt" -t "HE!" Entsprechend den Angaben wird dann in die unter -f angegebene Datei der unter -t angegebene Text geschrieben. ARGFMit ARGF verhält es sich anders als mit ARGV. Anders als ARGV ist ARGF kein Array, obwohl man das vielleicht vermuten würde. Es enthält die Inhalte aller der auf der Konsole mitgegebenen Dateien - einfach hintereinandergepappt (um festzustellen, aus welcher Datei ARGF gerade liest, kann man die vordefinierte globale Variable $FILENAME verwenden). Kann es eine Datei nicht finden (beispielsweise, weil auf der Konsole -a "Test.txt" eingegeben wurde und er "-a" nicht finden kann) wirft Ruby einen Error. Aus diesem Grund lässt es sich auch nur schwer zusammen mit ARGV nutzen. ARGF ist ein Fileartiges Objekt (auch wenn ein
Aufrufen könnte man es so: $ ruby argf.rb "Test.txt" "Test2.txt" Die Ausgabe variiert natürlich, je nachdem, welche Inhalte die Dateien enthalten. Angenommen, die Dateien sähen so aus: Hallo Welt! Ich hab doch schon Hallo gesagt! Test2.txt Wiedersehen, Welt! Hau ab! Dann sähe die Ausgabe mit Aufruf so aus: $ ruby argf.rb "Test.txt" "Test2.txt" Hallo Welt! Ich hab doch schon Hallo gesagt! Wiedersehen, Welt! Hau ab! Siehe auch |
|||||||||||||||||