我想要一些东西来阻止Pry命令,但我不想退出我的shell。
Control + C 不是我想要的。我不是试图退出循环或退出整个会话。如果我运行一段需要很长时间的代码,我只想返回Pry提示符。
答案 0 :(得分:1)
如果您从命令行启动Pry(即仅运行IF(c.JOBNUM LIKE a.JOBNUM AND c.IS_COMPLETE=0,1,0) AS `OPEN_DPUS`
),则可以这样做,但如果您在另一个进程中位于pry
内,则可能不行。
如果您直接启动Pry,它会设置信号处理程序并捕获 Control + C 以返回REPL。 IRB会做同样的事情,具体取决于ignore_sigint
设置。
但是,如果你在另一个进程中运行,那么该进程可能已经建立了自己的信号处理程序。例如,binding.pry
和rspec
都要注意 Control + C 以执行正常关闭。试图在其中一个进程中停止命令实际上会使Pry保持打开状态,但是执行进程的关闭工作,因此只要退出Pry,就会被转储回命令行。
您可以在Pry会话中设置自己的信号处理程序,例如:
rails s
可能有一些非常聪明的东西你可以在那里将执行移回Pry REPL,但几乎可以肯定会对可能存在的其他处理程序造成严重破坏。