[Ruby] system 'command' und Variablen

Hallo,

ich habe eigentlich keine Ahnung von Ruby, möchte aber jetzt ein kurzes Script schreiben, das folgendes leisten soll:
Ich habe ein in Ruby geschriebenes Script, dass installiert werden musste. Dabei wurde eine Datei namens download. Nun kann ich diese Datei in ein beliebiges Verzeichnis kopieren und über den Shell Befehl

download URL

einen Download starten.

Mein Versuch in Ruby sieht bisher so aus:

url = gets
system "download url"

Dann wird aber nicht die eingegebene URL für die Variable eingesetzt, sondern als URL der String „url“ verwendet, was natürlich nicht funktioniert.
Kann mir jemand sagen, wie ich das bewerkstellige??

Oder gibt es vielleicht eine noch elegantere Lösung?? Immerhin geht es ja um ein Ruby Script, dass ich da aus einem Ruby Script starten will.

Danke
Jops

Hallo Jops,

Mein Versuch in Ruby sieht bisher so aus:

url = gets
system „download url“

Dann wird aber nicht die eingegebene URL für die Variable
eingesetzt, sondern als URL der String „url“ verwendet, was
natürlich nicht funktioniert.

Wenn Du in Ruby etwas in Anführungszeichen setzt, wird die Variable url nicht interpretiert, sondern als Bestandteil des Strings angesehen. Um das zu erreichen, was Du offenbar möchtest, musst Du das so schreiben

system "download #{url}"

gut möglich, daß Du auch noch das Zeilenvorschubzeichen, das wegen gets dranhängt, mit chomp entfernen musst, also z.B. so:

url = gets.chomp

Oder gibt es vielleicht eine noch elegantere Lösung??

Bestimmt. Aber um das zu entscheiden, müsstest Du schon mehr vom Kontext zeigen als diese zwei Zeilen.

geht es ja um ein Ruby Script, dass ich da aus einem Ruby
Script starten will.

Vielleicht ist es gar nicht notwendig, daß Du diesen etwas umständlich anmutenden Weg gehst, ein Ruby-Skript aus einem Ruby-Skript zu starten.

Auf jeden Fall empfehle ich dir den Besuch des Ruby-Forums
http://forum.ruby-portal.de/index.php
da wird dir sehr freundlich geholfen.

Viele Grüße
Marvin