2014-01-19 71 views
5

我写了一个Ruby脚本,就像下面的例子。其基本功能是相同的:Ruby:在脚本执行后保持控制台打开

# get input from the user 
input = gets.chomp 
# do awesome stuf with this input and print the response 
puts do_awesome_stuff(input) 

问题是,当我运行它打印我想要的解决方案的脚本,但控制台窗口后立即关闭。我希望控制台保持打开状态。 我目前在windows上,但解决方案应该在每个系统上工作。

一种方法是用一个.bat文件运行Ruby脚本和暂停它,就像这样:

ruby script.rb 
PAUSE 

我希望有没有额外的.bat文件的方式。 Ruby是否有像PASUE集成的功能?

回答

7

看起来像你双击红宝石脚本文件。

而是在cmd shell中发出以下命令。

ruby filename.rb 

如果你不希望出现这种情况,你可以添加gets到脚本的末尾。

# get input from the user 
input = gets.chomp 
# do awesome stuf with this input and print the response 
puts do_awesome_stuff(input) 
gets # <---- 

但不建议这样做,因为..如果您运行CMD shell或终端的命令,你须额外输入返回到外壳。

+0

我最终喜欢'gets'的解决方案。我将添加一个像“用ENTER退出脚本”这样的句子。然后用户知道他必须做什么。 – ph3nx

+0

@PascalGläser,如果在中间调用'exit','gets'解决方案不起作用。如果发生异常也不起作用;你不会看到错误追溯。 – falsetru

+0

@PascalGläser,通常其他命令行程序不会使用等待用户在终止之前输入。这将很难将您的程序与其他命令行程序结合起来。 (考虑重定向,管道等shell功能...) – falsetru