gpt4 book ai didi

erlang - 如何在不中止 erl 的情况下中止 Erlang shell (erl) 中的接收语句?

转载 作者:行者123 更新时间:2023-12-01 23:10:19 25 4
gpt4 key购买 nike

以下使 erl 挂起:

$ erl
Erlang/OTP 24 [erts-12.1] [source] [64-bit] [smp:6:6] [ds:6:6:10] [async-threads:1] [jit] [dtrace]

Eshell V12.1 (abort with ^G)
1> receive X -> X end.

按 ctrl-C 调出一个选项菜单:

BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo

但是,我还没有发现其中任何一个让我返回到 erl 提示符。您是否必须通过选择“(a)bort”然后再次启动 erl 让它崩溃?

最佳答案

答案在您的 shell 提示符正上方的括号中:

(abort with ^G)

如果您按下 ctrl-G,您会看到一个用户切换命令提示符。您可以在此提示符下键入 h 以查看您可以执行的操作:

User switch command
--> h
c [nn] - connect to job
i [nn] - interrupt job
k [nn] - kill job
j - list all jobs
s [shell] - start local shell
r [node [shell]] - start remote shell
q - quit erlang
? | h - this message

让我们列出作业:

--> j
1* {shell,start,[init]}

这是运行您的receive 的shell。你可以用 k 杀死它,之后 j 显示没有作业在运行,所以然后使用 s 启动一个新的 shell, j 然后显示,然后使用 c 连接到新的 shell:

--> k 1
--> j
--> s
--> j
2* {shell,start,[]}
--> c 2
Eshell V12.1 (abort with ^G)
1>

关于erlang - 如何在不中止 erl 的情况下中止 Erlang shell (erl) 中的接收语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70059682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com