我知道我们可以使用control-C退出IEX控制台。我很好奇是否有一个命令输入控制台也会做同样的事情。
答案 0 :(得分:30)
我可以想到退出IEx shell的3种方法:
<ctrl-c>
点击两次或一次点击q
然后<enter>
,<ctrl-g>
然后q
+ <enter>
,System.halt
,但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)
从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 --remsh
和IEx -- Remote Shells)
关闭您所连接的节点。
2.1。 System.halt
- 快速而肮脏的关闭。运行时系统以状态代码0退出(干净退出而没有错误)。您也可以调用System.halt(:abort)
以使用核心转储中止。与:erlang.halt
相同。
2.2。 :init.stop
(在将来的版本中为System.stop
) - 干净关闭。在系统终止之前,通过调用halt(Status)
,所有应用程序都可以顺利关闭,卸载所有代码并关闭所有端口。
注意:如果您已使用iex --erl +Bi
连接到远程shell,则您的shell活着。
请注意,如果使用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 请参阅中断命令,其中还显示了如何切换 备用炮弹等。