Я знаю, что мы можем выйти из консоли IEX с помощью control-C. Мне любопытно, есть ли команда для ввода в консоль, которая также будет делать то же самое.
Еще один способ выхода из IEX, кроме ctrl-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, Enterq(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, которая также показывает, как вы можете переключаться между альтернативные оболочки и т.д.