另一种退出IEX而不是ctrl-C的方法

时间:2015-05-06 18:59:48

标签: elixir iex

我知道我们可以使用control-C退出IEX控制台。我很好奇是否有一个命令输入控制台也会做同样的事情。

5 个答案:

答案 0 :(得分:30)

我可以想到退出IEx shell的3种方法:

  1. 上述<ctrl-c>点击两次或一次点击q然后<enter>
  2. <ctrl-g>然后q + <enter>
  3. ,最后是System.halt
  4. System.halt与其他人之间存在差异。

    System.halt暂停Erlang运行时”,其他只是“退出shell ”。

    如果只有一个shell会话在运行,或者会话未连接到单独的运行时,则两种方式都会产生相同的结果。 但是如果你有一个会话连接到一个单独的运行时,例如通过iex --remsh(远程shell)然后在其中运行System.halt将暂停运行时,从而使两个shell进程/运行时终止。只是退出shell(通过方法1.或2.)不会停止它连接的运行时。

    结论:如果你将shell连接到其他运行时,那么知道System.halt将暂停你连接的运行时。如果您不想这样做,请使用<ctrl-c>

    更新:最近我也发现了<ctrl-\>。您可以在this article中了解更多相关信息:

      

    我不知道的是你可以通过发送Ctrl-来退出shell。   shell将立即退出。据我所知,它也是一样的   效果为在Break命令中中止shell,它不会影响   远程节点,它也可以在iex之外工作(例如,你可以   用来终止你的测试。)

答案 1 :(得分:13)

  1. 从shell断开并停止当前节点。这是大多数情况下你需要的。

    1.1。 Ctrl+\ - 退出Erlang shell的标准方法。请参阅&#34; 4.4如何退出Erlang shell?&#34;在Erlang -- Getting Started

    1.2。 Ctrl+C, a, Enter - 通过Break菜单的(a)bort命令。

    1.3。 Ctrl+C, Ctrl+C - 看起来像Break菜单中没有记录的功能。

    1.4。 Ctrl+G, q, Enter - 通过User Switch菜单的q(退出erlang)commant(参见Erlang -- shell -- JCL Mode)。

    注意:如果您使用iex --remsh iex --help建立连接,远程节点就会生效(请参阅iex --remshIEx -- Remote Shells

  2. 关闭您所连接的节点。

    2.1。 System.halt - 快速而肮脏的关闭。运行时系统以状态代码0退出(干净退出而没有错误)。您也可以调用System.halt(:abort)以使用核心转储中止。与:erlang.halt相同。

    2.2。 :init.stop(在将来的版本中为System.stop) - 干净关闭。在系统终止之前,通过调用halt(Status),所有应用程序都可以顺利关闭,卸载所有代码并关闭所有端口。

    注意:如果您已使用iex --erl +Bi连接到远程shell,则您的shell活着

  3. 请注意,如果使用ignore break,+ Bi,系统标志:[[1994, 1, 1, 6, 8096], [1994, 1, 2, 7, 7772], [1994, 1, 3, 1, 10142], [1994, 1, 4, 2, 11248], [1994, 1, 5, 3, 11053]] 启动Erlang,则禁用所有这些选项(这可能很有用,例如在运行受限制的shell时)。有关详细信息,请参阅Erlang -- erl

答案 2 :(得分:6)

看起来像

 System.halt

也有效。

答案 3 :(得分:2)

在shell中输入  :c.q() 并且快乐

答案 4 :(得分:1)

我一直认为 ctrl-G 然后是 q 退出 是退出iex shell的官方方式。 http://elixir-lang.org/docs/v1.0/iex/IEx.html 请参阅中断命令,其中还显示了如何切换 备用炮弹等。