【问题标题】:Ruby: Keep console open after script executionRuby:脚本执行后保持控制台打开
【发布时间】:2014-02-08 12:30:27
【问题描述】:

我编写了一个 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 之类的功能?

【问题讨论】:

    标签: ruby console


    【解决方案1】:

    您好像双击了 ruby​​ 脚本文件。

    改为在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 或终端中运行该命令,您应该输入额外的 Enter 以返回到 shell。

    【讨论】:

    • 我喜欢最后带有gets 的解决方案。我将添加一个类似“使用 ENTER 退出脚本”的句子。然后用户知道他必须做什么。
    • @PascalGläser, gets 如果中间有对 exit 的调用,则解决方案不起作用。如果引发异常也不起作用;您不会看到错误回溯。
    • @PascalGläser,通常其他命令行程序在终止前不使用等待用户输入。这将很难将您的程序与其他命令行程序结合起来。 (想想 shell 特性,如重定向、管道等)
    • 我遇到了同样的问题。这实际上是我的一个问题的重复。
    【解决方案2】:

    使用 irb 的-r 选项。

    irb -r ./filename.rb

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-26
      相关资源
      最近更新 更多