Computerwissenschaften

Kurzanleitung zu Befehlszeilenargumenten in Ruby

Viele Ruby- Skripte haben keine Text- oder grafischen Oberflächen. Sie rennen einfach, machen ihren Job und gehen dann. Um mit diesen Skripten zu kommunizieren und ihr Verhalten zu ändern, müssen Befehlszeilenargumente verwendet werden.

Die Befehlszeile ist der Standardbetriebsmodus für UNIX-Befehle. Da Ruby auf UNIX- und UNIX-ähnlichen Systemen (wie Linux und macOS) weit verbreitet ist, ist es ziemlich normal, auf diese Art von Programm zu stoßen.

 

Bereitstellen von Befehlszeilenargumenten

Ruby-Skriptargumente werden von der Shell an das Ruby-Programm übergeben, dem Programm, das Befehle (z. B. Bash) auf dem Terminal akzeptiert.

In der Befehlszeile wird jeder Text, der dem Namen des Skripts folgt, als Befehlszeilenargument betrachtet. Jedes durch Leerzeichen getrennte Wort oder jede Zeichenfolge wird als separates Argument an das Ruby-Programm übergeben.

Das folgende Beispiel zeigt die richtige Syntax zum Starten des Ruby-Skripts test.rb über eine Befehlszeile mit den Argumenten test1 und test2 .

$ ./test.rb test1 test2

Möglicherweise tritt eine Situation auf, in der Sie ein Argument an ein Ruby-Programm übergeben müssen, der Befehl jedoch ein Leerzeichen enthält. Es scheint zunächst unmöglich, da die Shell Argumente auf Leerzeichen trennt, aber es gibt eine Bestimmung dafür.

Argumente in doppelten Anführungszeichen werden nicht getrennt. Die doppelten Anführungszeichen werden von der Shell entfernt, bevor sie an das Ruby-Programm übergeben werden.

Das folgende Beispiel geht ein einziges Argument an den test.rb Ruby – Skript, test1 test2 :

$ ./test.rb "test1 test2"

 

So verwenden Sie Befehlszeilenargumente

In Ihren Ruby-Programmen können Sie mit der speziellen Variablen ARGV auf alle von der Shell übergebenen Befehlszeilenargumente zugreifen . ARGV ist eine Array-Variable, die als Zeichenfolgen jedes von der Shell übergebene Argument enthält.

Dieses Programm durchläuft das ARGV- Array und druckt seinen Inhalt aus:

#! / usr / bin / env ruby
ARGV.each do | a |setzt "Argument: # {a}"
Ende

Das Folgende ist ein Auszug aus einer Bash-Sitzung, in der dieses Skript (gespeichert als Datei test.rb ) mit verschiedenen Argumenten gestartet wird :

$ ./test.rb test1 test2 "drei vier"
Argument: test1
Argument: test2
Argument: drei vier

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.