Starten von Ruby ohne das Präfix "Ruby"

8

Ich bin auf OS X (mit Bash) und ein Neuling bei Unix. Ich möchte wissen, ob es möglich ist, eine Datei so zu ändern, dass ich zum Ausführen eines Ruby-Programms "ruby file.rb" nicht benötige, sondern stattdessen einfach "ruby.rb" ausführen kann.

Gibt es einen Grund, dies NICHT zu tun?

Danke!

    
Alex Mcp 31.03.2009, 14:43
quelle

5 Antworten

25

Ja, Sie können das tun.

Nehmen wir an, dass ruby.rb etwas ähnliches in sich hat:

%Vor%

In der Befehlszeile: chmod +x ruby.rb

Dies macht es ausführbar.

Dann können Sie es wie folgt ausführen:

%Vor%

Weitere Einzelheiten finden Sie unter Wikibooks .

BEARBEITEN (Jörg W Mittag): Verwenden von #!/usr/bin/env ruby anstelle von #!/usr/bin/ruby , da die Shebang-Linie portabler ist, weil der env -Befehl auf jedem in den letzten 20 Jahren produzierten Unix in% co_de lebt %, während Ruby-Installationen in der Regel überall sind. (ZB leben meine in /usr/bin .)

    
NoahD 31.03.2009, 14:48
quelle
6

Wie andere bereits erwähnt haben, möchten Sie am Anfang eine shebang ( #! ) Zeile haben und die Berechtigungen in ausführbare Dateien ändern.

Ich würde empfehlen, #!/usr/bin/env ruby anstelle des Pfades zu Ruby direkt zu verwenden, da dies Ihr Skript auf Systeme übertragbar macht, auf denen Ruby in verschiedenen Verzeichnissen installiert sein kann; env sucht in Ihrem Suchpfad und findet daher den gleichen Ruby, den Sie ausführen würden, wenn Sie ruby in der Befehlszeile ausführen würden. Natürlich wird dies Probleme haben, wenn env an einem anderen Ort ist, aber es ist viel häufiger, dass env bei /usr/bin/env ist als bei Ruby bei /usr/bin/ruby (möglicherweise in /usr/local/bin/ruby , /opt/bin/ruby , /opt/local/bin/ruby , usw.)

%Vor%

Und mach es ausführbar:

%Vor%     
Brian Campbell 31.03.2009 14:54
quelle
4

chmod + x / Pfad / zu / Datei

Kein Grund, es nicht zu tun, solange Sie dem Interpreter einen Shebang voranstellen (#! / usr / local / ruby ​​oder was auch immer der Pfad auf OSX ist). Der Shell ist das egal.

    
phresus 31.03.2009 14:45
quelle
3

Wenn Sie beim Ausführen dieser Anwendung etwas komplizierter machen möchten, können Sie immer ein Shell-Skript erstellen:

%Vor%

Wenn Sie es in run_script speichern, müssen Sie es nur wie zuvor erwähnt chmod + x ausführen und dann den folgenden Befehl ausführen:

%Vor%

Ich bezweifle, dass dies in Ihrer speziellen Situation nützlicher sein wird als die bereits erwähnten Lösungen, aber es ist der Vollständigkeit halber erwähnenswert.

    
Jason Baker 31.03.2009 14:59
quelle
2

Platzieren Sie den richtigen Shebang als erste Zeile Ihrer Datei. zB:

%Vor%

in der Shell, machen Sie die Datei ausführbar

%Vor%     
sdellysse 31.03.2009 14:49
quelle

Tags und Links