【问题标题】:Is there a way to get out of a "hung" state in IRB?有没有办法摆脱 IRB 的“挂起”状态?
【发布时间】:2011-12-02 14:54:20
【问题描述】:

当使用irbrails console 时,我有时会卡住。例如,我忘记了结束引号,所以当我按下回车键时,它仍在等待。

有时我可以摆脱这种情况(例如,通过提供结束语),但有时我不能。如果没有,我通常会这样做:

# Suspend the irb or console process
(Control + Z)

# Kill the last suspended process
kill -9 %

这很烦人,会破坏我在控制台中所做的一切。我想要的是相当于命令行上的Control + C,说“忘记那个 - 给我一个新提示”,这样我就可以继续在控制台中工作了。

有没有办法做到这一点?

【问题讨论】:

  • Control + C 通常对我有用,我必须承认。
  • @zoltarSpeaks - 这不是把你踢出控制台吗?
  • @Nathan 不。 Control + D 会(当输入足够多的次数时)。它还会使您退出终端会话、ssh 会话、su 和所有其他类型的会话。

标签: ruby-on-rails ruby irb


【解决方案1】:

按一次或两次Control + D。应该这样做。

【讨论】:

  • D 代表 Dogbert? :) 这似乎有效。你知道它实际上在做什么吗?
  • :D。 en.wikipedia.org/wiki/End-of-fileControl+D 将 EOF 字符发送到流。
  • 有趣。所以我想这符合“Unix 中的一切都是文件”的理念——包括我当前的终端输入。
  • 有意思,我一直以为ctrl + D代表断开连接。
【解决方案2】:

当你得到递归或 Ctrl+D 不起作用时

你可以杀死当前进程 ($$)

exec("kill -9 #{$$}")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2016-03-16
    • 2022-01-10
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多