Wie führe ich ein Ruby-Skript in Terminal aus?


231

Ich habe alles eingerichtet, was ich auf meinem Mac brauche (Ruby, Rails, Homebrew, Git usw.), und ich habe sogar ein kleines Programm geschrieben. Wie führe ich es nun im Terminal aus? Ich habe das Programm in Redcar geschrieben und als .rb gespeichert, aber ich weiß nicht, wie ich es über Terminal ausführen soll. Ich möchte das Programm ausführen und sehen, ob es tatsächlich funktioniert. Wie mache ich das?


54
Ich weiß nicht, wer Ihre allererste Frage abgelehnt hat, aber ich denke, das ist hart, also habe ich sie wieder abgestimmt. Viel Glück bei allem, alles scheint auf den ersten Blick so verwirrend, aber beharrlich, und bald wird es zur zweiten Natur, und dann helfen Sie anderen Menschen hier weiter.
iain

11
Schneller Vorlauf bis 2017 und jetzt hat das OP 2.555 Punkte und über 100 Abzeichen. :)
Daniel

Antworten:


245

Ruf einfach an: ruby your_program.rb

oder

  • Starten Sie Ihr Programm mit #!/usr/bin/env ruby,
  • Machen Sie Ihre Datei ausführbar, indem Sie ausführen chmod +x your_program.rb
  • und TU ./your_program.rb some_param

1
Wenn ich ruby ​​your_program.rb aufrufe, erhalte ich Folgendes: ruby: Keine solche Datei oder kein solches Verzeichnis - testapp.rb (LoadError)
Tom Maxwell

1
@ TomMaxwell Wenn er sagt ruby your_program.rb, sollen Sie 'your_program.rb' durch den Namen Ihres Programms ersetzen. In diesem Fall sollte es aufgrund Ihrer Fehlermeldung wahrscheinlich so sein ruby testapp.rb. Obwohl @Robin insofern korrekt ist, müssen Sie sich im selben Verzeichnis wie die Ruby-Datei befinden.
Joshua Cheek

2
Ich denke, er hat es getan, sonst würde die Fehlermeldung nicht über testapp.rb sein. Aber aufgrund seiner anderen Kommentare wusste er nicht, wie er cdzu seinem Desktop-Verzeichnis gelangen sollte, also muss es das sein.
Robin

1
Wie wäre es, wenn einige in der .rb-Datei erforderlich sind?
Jacky

1
@ Chris Page, ich hatte tatsächlich dieses Problem, indem ich den ersten Weg benutzte. Ich habe den Mod geändert, wie du vorgeschlagen hast und es hat funktioniert! Danke vielmals!
Nstein

36

Öffnen Sie Ihr Terminal und öffnen Sie den Ordner, in dem die Datei gespeichert ist.
Ex/home/User1/program/test.rb

  1. Terminal öffnen
  2. cd /home/User1/program
  3. ruby test.rb

format oder test.rb.

class Test 
  def initialize
   puts "I love India"
  end
end

# initialize object
Test.new

Ausgabe

I love India

2
Classsollte sein class(mit einem niedrigeren c ). Sonst funktioniert es nicht.
DanielH

24

Angenommen, der Ruby-Interpreter befindet sich in Ihrem PFAD (sollte es sein), laufen Sie einfach

ruby your_file.rb

Das gibt mir eine Fehlermeldung, also schätze ich, dass ich während des Setups etwas falsch gemacht habe. Wie mache ich das?
Tom Maxwell

Ruby: Keine solche Datei oder Verzeichnis - testapp.rb (LoadError)
Tom Maxwell

Was ist eine testapp.rb? Bist du in der gleichen Richtung, in der es ist?
Sergio Tulentsev

Ich denke, was Sie über den Rubin-Dolmetscher in meinem Pfad gesagt haben, ist das Problem. Ich habe wahrscheinlich etwas nicht richtig gemacht; Ich habe viel herumgespielt, um alles einzurichten.
Tom Maxwell

2
cdist ein Terminalbefehl, der das aktuelle Verzeichnis ändert. Um beispielsweise zu einem "Desktop" -Verzeichnis in Ihrem HOME_DIR zu wechseln, müssen Sie dies tun cd ~/Desktop.
Sergio Tulentsev

15

Um Ruby-Datei aufzurufen, verwenden Sie: ruby your_program.rb

So führen Sie Ihre Ruby-Datei als Skript aus:

  1. Starten Sie Ihr Programm mit #!/usr/bin/env ruby

  2. Führen Sie das Skript mit aus ./your_program.rb param

  3. Wenn Sie dieses Skript nicht ausführen können, überprüfen Sie die Berechtigungen für die Datei.

Im Allgemeinen müssen Sie zum Ausführen eines Skripts die Ausführungsberechtigung erteilen. Wenn dies nicht angegeben ist, würde es mit dem obigen Befehl nicht funktionieren. Überprüfen Sie Ihre Berechtigungen und verwenden Sie denselben Befehl.
Priti Biyani

4

Rufen Sie einfach ruby XXXXX.rbim Terminal auf, wenn sich der Interpreter in Ihrer Variablen $ PATH befindet.

(Dies kann kaum eine Schienensache sein, bis Sie es laufen lassen.)


2

Es ist zwar zu spät, um diese Frage zu beantworten, aber dennoch für diejenigen, die hierher gekommen sind, um die Lösung des gleichen Problems wie ich zu sehen und auf dieser Seite keine zufriedenstellende Antwort erhalten haben. Der Grund dafür ist, dass Sie Ihre Datei nicht haben in Form einer .rb-Erweiterung. Sie haben es höchstwahrscheinlich im einfachen Textmodus. Lassen Sie mich näher darauf eingehen. Binden Sie die gesamte Lösung auf der Seite zusammen (vorausgesetzt, Ihr Dateiname lautet abc.rb oder Sie haben zumindest abc erstellt):

Geben Sie das Terminalfenster ein:

cd ~/to/the/program/location
ruby abc.rb

und du bist fertig

Wenn der folgende Fehler auftritt

ruby: No such file or directory -- abc.rb (LoadError)

Gehen Sie dann zu dem Verzeichnis, in dem Sie die abc-Datei haben, benennen Sie sie in abc.rb um. Schließen Sie gedit und öffnen Sie die Datei abc.rb erneut. Wenden Sie die gleichen Befehle und den gleichen Erfolg an!


2

Für diejenigen, die keine Lösung für ältere Antworten erhalten, füge ich einfach meinen Dateinamen als allererste Zeile in meinen Code ein.

wie so

 #ruby_file_name_here.rb

 puts "hello world"

1

Terminal öffnen

cd to/the/program/location
ruby program.rb

oder fügen Sie #!/usr/bin/env rubyden ersten Teil Ihres Programms hinzu (Skript sagt, dass dies mit Ruby Interpreter ausgeführt wird)

Terminal öffnen

cd to/the/program/location
chmod 777 program.rb
./program.rb

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.