执行后保留ruby解释器

时间:2013-12-16 17:47:37

标签: ruby debugging

我是Ruby的初学者并注意到每当我在记事本中编写脚本然后执行它时,它会立即退出,所以我没有时间阅读输出。我添加了input = gets.chomp!以保持打开,虽然现在不是这样,但它已经工作了一次。

执行脚本后,如何保持口译员的工作?

这是我的代码,我使用的是Windows。

require 'pry'
index = 0
File.open("....txt").each {|x| puts x}
#puts index
binding.pry

感谢所有帮助人员,结果是gets.chomp!现在有效,我的问题是该文件不是文本而是html。对不起,所有的麻烦。

4 个答案:

答案 0 :(得分:1)

打开控制台。 运行您的文件(键入ruby file.rb

或者您可以创建包含以下内容的简单bat文件:

ruby yourfile.rb
pause

使用.bat扩展名命名并运行。

答案 1 :(得分:0)

你可以尝试

irb -r your_file_path

它将打开你的文件并在打开irb之前执行它,所以你定义的所有类都可以使用。

答案 2 :(得分:0)

使用Pry

AFAIK你试图在调试和检查状态时做同样的事情。

添加

binding.pry

代码中的某处。执行将停在那里你可以检查那时的状态。您可以在文件末尾添加它,以查看执行完毕后发生的情况。

您可以根据需要添加任意数量,并且每个都会获得断点。类型exit离开并转到下一个断点,或完成执行。您可以在Pry控制台上输入标准的红宝石代码。

请记得添加

require 'rubygems'
require 'pry'

从某个地方开始,领导宝石。您需要先使用

安装gem
gem install pry

您将在bash命令行中输入,而不是在ruby控制台或脚本文件中。如果你在PC上,那么我不知道如何告诉你安装宝石。不过,你应该学习。

许多人认为Pry是调试ruby代码的最佳方法。

答案 3 :(得分:0)

我建议您从IRB内部尝试代码。只需从终端内部运行'irb'即可。 gets.chomp行应该保持你的翻译,因为它等待用户输入。

如果您未在代码中使用putsp,则您的Ruby代码中的输出将不会显示在您的终端中。你必须在你的代码中做这样的事情。

puts "Hello world!"

您传递给putsp的参数会在终端中打印出来。下面的代码不会打印到终端:

1 + 1

这可能就是你没有看到代码输出的原因。