Come eseguire uno script Ruby in Terminal?


231

Ho impostato tutto ciò di cui ho bisogno sul mio Mac (Ruby, Rails, Homebrew, Git, ecc.) E ho persino scritto un piccolo programma. Ora, come posso eseguirlo nel terminale? Ho scritto il programma in Redcar e l'ho salvato come .rb, ma non so come eseguirlo tramite Terminal. Voglio eseguire il programma e vedere se funziona davvero. Come faccio a fare questo?


54
Non so chi abbia votato verso il basso la tua prima domanda, ma penso che sia dura, quindi l'ho votata di nuovo. In bocca al lupo per tutto, all'inizio sembra tutto così confuso ma perseverante e in breve tempo sarà una seconda natura, e poi aiuterai altre persone qui.
Iain

11
Avanti veloce fino al 2017 e ora il PO ha 2.555 punti e oltre 100 badge. :)
Daniel,

Risposte:


246

Chiama soltanto: ruby your_program.rb

o

  • inizia il tuo programma con #!/usr/bin/env ruby,
  • rendere eseguibile il file eseguendolo chmod +x your_program.rb
  • e fai ./your_program.rb some_param

1
Quando chiamo ruby ​​your_program.rb, ottengo questo: ruby: nessun file o directory simile - testapp.rb (LoadError)
Tom Maxwell

1
@TomMaxwell Quando dice ruby your_program.rb, dovresti sostituire "your_program.rb" con qualunque sia il nome del tuo programma. In questo caso, in base al tuo messaggio di errore, probabilmente dovrebbe esserlo ruby testapp.rb. Sebbene @Robin sia corretto in quanto è necessario trovarsi nella stessa directory del file Ruby.
Joshua Cheek,

2
Penso che l'abbia fatto, altrimenti il ​​messaggio di errore non riguarderebbe testapp.rb. Ma sulla base degli altri suoi commenti, non sapeva come cdraggiungere la sua directory Desktop, quindi deve essere così.
Robin

1
che ne dite se ci sono alcuni requisiti nel file .rb?
Jacky,

1
@Chris Page, in realtà ho avuto questo problema usando il primo modo. Ho cambiato mod come mi hai suggerito e ha funzionato! Grazie mille!
nstein,

36

Apri il tuo terminale e apri la cartella in cui è stato salvato il file.
Ex/home/User1/program/test.rb

  1. Terminale aperto
  2. cd /home/User1/program
  3. ruby test.rb

format o test.rb

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

# initialize object
Test.new

produzione

I love India

2
Classdovrebbe essere class(con una c inferiore ). Altrimenti non funzionerà.
DanielH,

24

Supponendo che l'interprete rubino sia nel tuo PERCORSO (dovrebbe essere), corri semplicemente

ruby your_file.rb

Questo mi dà un messaggio di errore, quindi immagino di aver fatto qualcosa di sbagliato durante l'installazione. Come lo faccio?
Tom Maxwell

ruby: nessun file o directory simile - testapp.rb (LoadError)
Tom Maxwell

cos'è un testapp.rb? Sei nella stessa direzione in cui si trova?
Sergio Tulentsev,

Penso che il problema sia quello che hai detto sull'interprete ruby ​​nel mio PERCORSO. Probabilmente non ho fatto qualcosa di corretto; mi ci sono voluti un sacco di casino per sistemare tutto.
Tom Maxwell,

2
cdè un comando terminale che cambia la directory corrente. Ad esempio, per andare a una directory "Desktop" che si trova nel tuo HOME_DIR, dovresti farlo cd ~/Desktop.
Sergio Tulentsev il

15

Per chiamare il file ruby ​​usare: ruby your_program.rb

Per eseguire il tuo file ruby ​​come script:

  1. inizia il tuo programma con #!/usr/bin/env ruby

  2. esegui quello script usando ./your_program.rb param

  3. Se non si è in grado di eseguire questo script, controllare le autorizzazioni per il file.

Generalmente per eseguire uno script, è necessario autorizzare l'esecuzione. Se ciò non viene fornito, non funzionerebbe con il comando precedente. Controlla le tue autorizzazioni e quindi usa lo stesso comando.
Priti Biyani,

4

Richiamare ruby XXXXX.rbnel terminale, se l'interprete è nella variabile $ PATH.

(questa non può essere una cosa rotaia, fino a quando non la fai funzionare.)


2

Anche se è troppo tardi per rispondere a questa domanda, ma comunque per quei ragazzi che sono venuti qui per vedere la soluzione dello stesso problema proprio come me e non hanno ottenuto una risposta soddisfacente in questa pagina, il motivo è che non hai il tuo file sotto forma di estensione .rb. Molto probabilmente ce l'hai in semplice modalità testo. Lasciami elaborare. Associando l'intera soluzione sulla pagina, eccoti qui (supponendo che il tuo nome file sia abc.rb o almeno hai creato abc):

Digitare nella finestra del terminale:

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

e il gioco è fatto

Se si verifica il seguente errore

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

Quindi vai alla directory in cui hai il file abc, rinominalo come abc.rb Chiudi gedit e riapri il file abc.rb. Applica lo stesso set di comandi e successo!


2

Per coloro che non ottengono una soluzione per le risposte più vecchie, ho semplicemente inserito il mio nome file come prima riga del mio codice.

così

 #ruby_file_name_here.rb

 puts "hello world"

1

Terminale aperto

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

o aggiungi #!/usr/bin/env rubyil primo del tuo programma (lo script dice che questo viene eseguito usando Ruby Interpreter)

Terminale aperto

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.