-1

我正在尝试运行这个简单的程序:

puts " Hello, what's you're name?"
name  = gets.chomp
puts 'Hello,'+ '' + name+ '.'

if name =='Chris'
  puts 'What a lovely name!'
end

但我不断收到此输出错误:

1.9.3-p392 :003 > ruby exerise72.rb
NameError: undefined local variable or method `exerise72' for main:Object
    from (irb):3
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands/console.rb:47:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands/console.rb:8:in `start'
    from /usr/local/rvm/gems/ruby-1.9.3-p392/gems/railties-3.2.12/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

我不明白出了什么问题。

4

2 回答 2

2

您正尝试在 Rails 控制台中为您的 shell 发出命令。键入quit然后按ReturnorEnter退出它并返回到正常的 shell 提示符。

然后你可以尝试:

ruby exerise72.rb

了解您的 OS shell 和 IRB/Rails 的控制台以及您最终使用的任何其他 shell 或命令行界面之间的区别非常重要。它们非常强大,并且不知道您在做什么,也不知道您在哪里正在这样做,是随机弄乱磁盘、丢失文件和意外删除内容的好方法。

于 2013-04-17T00:19:31.867 回答
1

ruby在 ruby​​ 控制台之外执行命令。用于执行内联命令的 ruby​​ 控制台 (irb)。如果你想执行一个完整的脚本(你的exerise72.rb程序),你必须在 cmd、bash 或类似的环境中执行。

于 2013-04-16T22:57:05.373 回答