2013-05-12 1 views
0

Я использую рубин 1.9.2 с IRB и я получаю следующее сообщение об ошибке:NameError: не определено локальная переменная или метод IRB

NameError: undefined local variable or method `ex1' for main:Object 
from (irb):4 
from /Users/flexmaster411/.rvm/rubies/ruby-1.9.2-p320/bin/irb:16:in `<main>' 

Я также попытался перетащить в IRB тогда я получаю другой аргумент ошибки код.

Rodas-MacBook-Air:~ flexmaster411$ pwd /Users/flexmaster411 
Rodas-MacBook-Air:~ flexmaster411$ cd Desktop 
Rodas-MacBook-Air:Desktop flexmaster411$ cd my 
Rodas-MacBook-Air:my flexmaster411$ ls 
ex1.rb ex2.rb test.html test.rb wacky.rb 
Rodas-MacBook-Air:my flexmaster411$ irb 
1.9.2-p320 :001 > ruby ex1.rb 
NameError: undefined local variable or method ex1' for main:Object from (irb):1 from /Users/flexmaster411/.rvm/rubies/ruby-1.9.2-p320/bin/irb:16:in <main>' 
+0

Пожалуйста, добавьте фактический код, который вы пытались выполнить, иначе мы не сможем найти полезный ответ. –

+0

Я получаю то же сообщение об ошибке независимо от того, какой код я вставляю, но в этом случае он помещает «Hello World!» – cyclopse87

+0

Хорошо, не могли бы вы обновить свой ответ с помощью полной сессии IRB? Включая строку, в которой вы запускаете irb и включаете полное сообщение об ошибке. Благодаря –

ответ

3

Так что вы пытаетесь сделать, это:

$ irb 
001 > ruby ex1.rb 

Команда ruby программа сама по себе, так что вы должны использовать ruby непосредственно из командной строки, как это:

$ ruby ex1.rb 

Это означает «Ruby, пожалуйста, выполните этот файл», тогда как irb - это REPL, ожидающий утверждения Ruby напрямую. Это означает, что вы можете ввести свой код на Ruby прямо в IRB, как это:

$ irb 
001 > puts "Hello, world!" 
Hello, world! 

Или вы могли бы пойти в irb и загрузить содержимое файла, а затем поэкспериментировать с кодом:

$ irb 
001 > require './ex1' 
+0

Полностью не поймал это большое спасибо снова padde за его очистку. – cyclopse87

+0

Добро пожаловать, рад, что я мог бы помочь! –