远程shell上带有eval的Erlang一行程序

远程shell上带有eval的Erlang一行程序,erlang,erlang-shell,Erlang,Erlang Shell,我试图让erlang在远程机器上通过远程shell连接运行一小段代码 erl $ERL_COOKIE -name ${SHELL_NAME} -remsh ${REMOTE_SHELL} -eval 'io:fwrite("~p",[registered()]), init:stop()' eval不是在远程系统上执行的,而是在一些本地引导中执行的。我还尝试了-run和-s。从erl有什么方法可以做到这一点吗?如果您查看的文档,您将看到-eval的表达式是由当前erlang节点中的init计算

我试图让erlang在远程机器上通过远程shell连接运行一小段代码

erl $ERL_COOKIE -name ${SHELL_NAME} -remsh ${REMOTE_SHELL} -eval 'io:fwrite("~p",[registered()]), init:stop()'

eval不是在远程系统上执行的,而是在一些本地引导中执行的。我还尝试了
-run
-s
。从
erl
有什么方法可以做到这一点吗?

如果您查看的文档,您将看到
-eval
的表达式是由当前erlang节点中的
init
计算的,而不是由shell计算的。因此,使用
-remsh
启动连接到另一个节点的shell不会影响
-eval
-run
-s
的运行位置。

检查rpc模块。另外,如果您使用名称和cookie集运行“erl”,并点击Ctrl+G,您可以启动一个远程shell,就像您正在寻找的shell一样(Ctrl+G,r)target@node,c)