问题描述
我知道我们可以使用Control-C退出IEX控制台。我很好奇是否有一个命令可以在控制台中输入,并且同样可以执行相同的操作。
I know we can exit the IEX console with control-C. I'm curious if there's a command to type into the console that would also do the same thing.
推荐答案
我能想到退出IEx Shell的3种方法:
I can think of 3 ways to quit an IEx shell:
- 提到的
< ctrl-c>
命中两次或一次,然后依次是q
和< enter>
, -
< ctrl-g>
,然后q
+< enter>
, - ,最后是
System.halt
,
- The mentioned
<ctrl-c>
hit twice or once followed byq
and then<enter>
, <ctrl-g>
and thenq
+<enter>
,- and finally
System.halt
,
,但是 System.halt
与其他的区别。
but there is a difference between System.halt
and the others.
即 System.halt
暂停Erlang运行时,而其他人只是 退出外壳。
Namely that System.halt
"halts the Erlang runtime" and the others just "quit the shell".
当您仅运行一个Shell会话或该会话未附加到单独的运行时时,两种方式都会产生相同的结果。
但是如果您有一个连接到单独运行时的会话,例如通过 iex --remsh
(远程shell),然后在其中运行 System.halt
会停止运行,因此Shell进程/运行时终止。只是退出外壳程序(通过方法1.或2.)不会停止它所连接的运行时。
When you have only one shell session running or the session is not attached to a separate runtime then both ways will produce the same result.But if you have a session connected to a separate runtime e.g. via iex --remsh
(remote shell) then running System.halt
in it will halt the runtime and so make both shell processes / runtimes terminate. Just quitting a shell (via method 1. or 2.) will not stop the runtime it is connected to.
结论:如果将外壳程序连接到其他运行时,则知道 System.halt
将暂停您已连接的运行时。如果您不想这样做,请使用< ctrl-c>
。
Conclusion: if you connect with your shell to other runtimes then know that System.halt
will halt the runtime you have connected to. If you do not want to do it use <ctrl-c>
.
更新:最近我也发现有关< ctrl-\>
的信息。您可以在中了解更多信息。 :
UPDATE: Recently I have also found out about <ctrl-\>
. You can read more about it in this article:
这篇关于ctrl-C以外的另一种退出IEX的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!