2009-12-14 13 views
34

Non riesco a far funzionare l'interprete Ruby su nessuno dei miei Mac (un MacBook e un MacBook Pro, entrambi con Snow Leopard). Quando lo eseguo, digitando ruby nel terminale, non succede nulla. Si siede proprio lì. Posso ucciderlo premendo Ctrl+C, ma il gioco è fatto. So che il processo Ruby è in esecuzione, dal momento che posso vederlo in Activity Monitor, e in esecuzione ruby --version funziona bene.Il comando "ruby" non fa nulla sul mio Mac

Ho provato quanto segue, tutto inutile:

  1. devo alcune personalizzazioni bash, così ho provato loro invalidante, ma che non ha aiutato.
  2. Ho installato una nuova copia di Ruby 1.8.7 utilizzando MacPorts, ma quello aveva lo stesso problema.
  3. Ho provato a chiudere e riavviare l'applicazione Terminale.

alcune altre informazioni che potrebbero essere utili:

  • Sto cercando di eseguire la versione di Ruby che viene fornito con Snow Leopard.
  • Ho installato gli strumenti di sviluppo di Apple.
  • Altri interpreti (Python, Io, ecc.) Funzionano correttamente.

Ho passato un po 'di tempo stasera alla ricerca di questo problema online, ma non ho trovato alcuna discussione su di esso. Sono in perdita per quello che potrebbe essere la causa, quindi qualsiasi aiuto che qualcuno può fornire sarebbe molto apprezzato.

risposta

70

comando Rubino si sarà solo comportarsi nel modo che hai detto, o dotarla di file di script o utilizzare l'opzione -e:

ruby -e ' puts "hello world" '

Tuttavia ho il sospetto che si desidera che l'IRB (ruby interattivo). Esegui irb nella shell.

+4

Ugh, grazie. Ho completamente dimenticato che irb era un comando separato. –

9

Che cosa stai cercando di fare, esattamente? Il comando ruby si aspetta l'input, nella maggior parte dei casi un file che contiene il codice Ruby che si desidera venga eseguito. In questo caso è necessario specificare il nome del file:

> ruby my_ruby_file.rb 

Se invece si desidera eseguire il interactive Ruby shell, vale a dire la console REPL che è possibile digitare codice Ruby in e lo hanno eseguito ogni volta che si preme Invio, il comando desiderato è irb.