如何在Elixir iex中运行IO.read(:stdio,:all)后退出?
我需要测试一些输入数据流,并使用“IO.read”,但在输入数据后,我无法退出此模式,CTRL-Z/X/C/D没有帮助(它会终止整个iex)。那么,对于这种模式,如何使用正确的EOF命令呢? 谢谢 TL;DR:使用如何在Elixir iex中运行IO.read(:stdio,:all)后退出?,io,elixir,eof,elixir-iex,Io,Elixir,Eof,Elixir Iex,我需要测试一些输入数据流,并使用“IO.read”,但在输入数据后,我无法退出此模式,CTRL-Z/X/C/D没有帮助(它会终止整个iex)。那么,对于这种模式,如何使用正确的EOF命令呢? 谢谢 TL;DR:使用^G后跟j、i[nn]和c[nn] 在erl和iexshell中,您总是可以^G进入“用户切换命令”模式。键入h以获取帮助 iex|1 ▶ IO.read :stdio, :all ^G User switch command --> j 1* {erlang,a
^G
后跟j
、i[nn]
和c[nn]
在
erl
和iex
shell中,您总是可以^G
进入“用户切换命令”模式。键入h
以获取帮助
iex|1 ▶ IO.read :stdio, :all
^G
User switch command
--> j
1* {erlang,apply,[#Fun<Elixir.IEx.CLI.1.96155272>,[]]}
--> i 1
--> c 1
{:error, :interrupted}
iex|2 ▶
iex | 1▶ IO.read:stdio,:all
^G
用户切换命令
-->j
1*{erlang,apply,[#Fun,[]}
-->i 1
-->C1
{:错误,:中断}
iex | 2▶
旁注:所有终端中正确的
EOF
终止应为^D
。我真的不知道为什么它不能在erl
/iex
控制台中正常工作;DR:使用^G
后跟j
、i[nn]
和c[nn]
在
erl
和iex
shell中,您总是可以^G
进入“用户切换命令”模式。键入h
以获取帮助
iex|1 ▶ IO.read :stdio, :all
^G
User switch command
--> j
1* {erlang,apply,[#Fun<Elixir.IEx.CLI.1.96155272>,[]]}
--> i 1
--> c 1
{:error, :interrupted}
iex|2 ▶
iex | 1▶ IO.read:stdio,:all
^G
用户切换命令
-->j
1*{erlang,apply,[#Fun,[]}
-->i 1
-->C1
{:错误,:中断}
iex | 2▶
旁注:所有终端中正确的
EOF
终止应为^D
。我真的不知道为什么它不能在erl
/iex
控制台中正常工作。对于任何IO读取操作,正确的EOF终止应该是^D
。显然,由于未知原因,它在iex
会话中不工作。对于任何IO读取操作,正确的EOF终止应该是^D
。显然,由于未知原因,它在iex
会话中不起作用。奇怪的是,这似乎在MacOS 10.13上对我不起作用。在c1
之后,它不会返回一个值,它只会进入与按^G
@Dogbert之前相同的状态哦,谢谢你的锐利目光;我复制粘贴了我的一个实验,而不是最后一个成功的。在切换到工作之前,应该先中断工作。已更新。由于所有的输入都进入了您的IO.read
,因此您的代码有责任以某种方式使这些数据可用。人们可能会使用ETS、代理或类似的工具。奇怪的是,在MacOS 10.13上,这似乎不适用于我。在c1
之后,它不会返回一个值,它只会进入与按^G
@Dogbert之前相同的状态哦,谢谢你的锐利目光;我复制粘贴了我的一个实验,而不是最后一个成功的。在切换到工作之前,应该先中断工作。已更新。由于所有的输入都进入了您的IO.read
,因此您的代码有责任以某种方式使这些数据可用。人们可以使用ETS、代理或类似的工具。