Еще один способ выхода из IEX, кроме ctrl-C
Я знаю, что мы можем выйти из консоли IEX с помощью control-C. Мне любопытно, есть ли команда для ввода в консоль, которая также будет делать то же самое.
Ответы
Ответ 1
Я могу думать о 3 способах выхода из оболочки IEx:
- Упомянутый
<ctrl-c>
ударил дважды или один раз, а затем q
, а затем <enter>
,
-
<ctrl-g>
, а затем q
+ <enter>
,
- и, наконец,
System.halt
,
но есть разница между System.halt
и другими.
А именно, что System.halt
"останавливает время выполнения Erlang", а остальные просто "выходят из оболочки".
Если у вас запущен только один сеанс оболочки или сеанс не подключен к отдельной среде выполнения, то оба способа приведут к такому же результату.
Но если у вас сеанс подключен к отдельной среде выполнения, например. через iex --remsh
(удаленная оболочка), тогда запуск System.halt
в нем остановит время выполнения и, таким образом, сделает оба процесса оболочки/время выполнения завершенным. Просто выключение оболочки (с помощью метода 1. или 2.) не остановит время выполнения, к которому он подключен.
Заключение: если вы подключаетесь к своей оболочке к другим версиям, тогда знайте, что System.halt
остановит рабочую среду, к которой вы подключились. Если вы не хотите этого делать, используйте <ctrl-c>
.
UPDATE: Недавно я также узнал о <ctrl-\>
. Подробнее об этом читайте в в этой статье:
Я не знал, что вы можете выйти из оболочки, отправив Ctrl-. Оболочка немедленно выйдет. Насколько я знаю, он имеет то же самое эффект как прерывание оболочки в команде Break, это не влияет удаленных узлов, а также работает вне iex (например, вы можете используйте для завершения тестов).
Ответ 2
-
Отключиться от оболочки и остановить текущий узел. Это то, что вам нужно в большинстве случаев.
1.1. Ctrl+\
- стандартный метод выхода из оболочки Erlang. См. "4.4 Как мне выйти из оболочки Erlang?" в Эрланге - Начало работы.
1.2. Ctrl+C, a, Enter
- с помощью команды (a)bort
в меню Break.
1.3. Ctrl+C, Ctrl+C
- выглядит как недокументированная особенность меню Break.
1.4. Ctrl+G, q, Enter
- через Ctrl+G, q, Enter
q
(quit erlang) меню User Switch (см. Erlang - shell - JCL Mode).
Примечание: это делает удаленный узел iex --remsh
если вы подключились к нему с помощью iex --remsh
(см. iex --help
и IEx - Remote Shells).
-
Завершите работу узла, к которому вы подключены.
2.1. System.halt
- быстрое и грязное завершение работы. Система выполнения выходит с кодом состояния 0 (чистый выход без ошибок). Вы также можете вызвать System.halt(:abort)
для прерывания с помощью дампа System.halt(:abort)
. То же, что и :erlang.halt
.
2.2. :init.stop
( System.stop
в будущих версиях) - чистое завершение работы. Все приложения удаляются без проблем, весь код выгружается, и все порты закрываются до завершения работы системы, вызывая halt(Status)
.
Примечание. Это позволяет вашей оболочке iex --remsh
если вы подключились к удаленной оболочке с помощью iex --remsh
.
Обратите внимание, что все эти опции отключены, если Erlang запускается с остановом игнорирования, +Bi, системным флагом: iex --erl +Bi
(что может быть полезно, например, при запуске ограниченной оболочки). Смотрите Erlang - erl для получения дополнительной информации.
Ответ 3
Похож на
System.halt
также работает.
Ответ 4
вход в оболочку
:c.q()
и быть счастливым
Ответ 5
Я всегда думал, что ctrl-G
а затем q
зайти
был официальным способом выхода из оболочки iex.
http://elixir-lang.org/docs/v1.0/iex/IEx.html
См. В разделе Команда Break, которая также показывает, как вы можете переключаться между
альтернативные оболочки и т.д.