cd Execute in Ruby-Script

xActionx

Software-Overclocker(in)
Hallo,

habe ein Problem mit meinem Ruby-Script und zwar scheint es über keine der shell-execute Funktionen eine Möglichkeit zu geben in ein anderes Verzeichnis zu wechseln...

Habe das Script unter $/Desktop/Ruby/ liegen und habe es auch von da gestartet (auch mit root-rechten), dabei habe ich folgenden Code versucht um das Verzeichnis nach Desktop zu wechseln um dort eine Datei zu erstellen:

Versuch 1( zuerst mit Backtick-Operator, danach mit %x
Code:
puts `cd Desktop`;
#bzw.
%x{cd Desktop};

der Code spuckt den Fehler "Directory not found" aus was ja auch logisch ist, da ich schon in Desktop/Ruby bin und nicht einfach mit cd Desktop zurück nach /Desktop wechseln. Also dachte ich mir ich veruchs mal mit zurück nach /home/ und dann nach /Desktop

Code:
puts `cd  `;
puts `cd Desktop`;
#bzw.
%x{cd};
%x{cd Desktop};

aber auch das funktioniert nicht. Es scheint als wird nur cd gar nicht richtig ausgeführt, denn das funktioniert in der Konsole immer und wechselt zurück nach home, aber hier spuckt es nur den Fehler aus "No such file or directory".

Auch mit Dir.chdir{/usr/bin/} funktioniert es nicht.


Für Hilfe wäre ich sehr dankbar.

MFG
 
Dir.chdir funktioniert bei mir völlig problemlos.

Ich kenne mich, was Ruby angeht, nicht gerade gut aus, aber Dir.chdir{/usr/bin/} scheint mir syntaktisch etwas fragwürdig.
 
Dir.chdir funktioniert bei mir völlig problemlos.

Ich kenne mich, was Ruby angeht, nicht gerade gut aus, aber Dir.chdir{/usr/bin/} scheint mir syntaktisch etwas fragwürdig.

Stimmt aber von der Syntax her... Habe mich da auch etwas vertippt und es mit der %x-Funktion verwechselt... Hatte im Code Dir.chdir("/usr/bin/")

Okay habe es jetzt hinbekommen. Code schaut wie folgt aus:

Code:
Dir.chdir(ENV['HOME'])
Dir.chdir("Desktop")

so wechselt das script auf Desktop, egal in welcher Directory es ausgeführt wird.
 
Zuletzt bearbeitet:
Zurück