与从 shell 脚本中使用 run_erl 运行的 Erlang shell 进行通信
我有一个通过 run_erl
运行的 Erlang 应用程序。它创建文件 erlang.pipe.1.w
和 erlang.pipe.1.r
,我可以通过 to_erl
启动控制台。到目前为止,一切都很好。然后我需要通过 shell 脚本与它对话。显而易见的事情是
#!/bin/sh
EXPR=$1
PIPE_DIR=/tmp/mware
PIPE=$PIPE_DIR/erlang.pipe.1.w
echo $EXPR >> $PIPE
最初它有效,但现在我收到一个错误:
-sh: can't create erlang.pipe.1.w: Interrupted system call
ls
显示该文件已经存在。出了什么问题以及如何修复它?
I have an Erlang application which is run via run_erl
. It creates files erlang.pipe.1.w
and erlang.pipe.1.r
and I can start a console via to_erl
. So far, so good. Then I needed to talk to it from a shell script. The obvious thing to do was
#!/bin/sh
EXPR=$1
PIPE_DIR=/tmp/mware
PIPE=$PIPE_DIR/erlang.pipe.1.w
echo $EXPR >> $PIPE
Initially it worked, but now I am getting an error:
-sh: can't create erlang.pipe.1.w: Interrupted system call
ls
shows that the file already exists. What's going wrong and how can I fix it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否尝试过使用管道(
|
)而不是附加(>>
)。例如echo 'io:format("hello ~p", ["world"])' | to_erl $PIPE_DIR
Have you tried using a pipe (
|
) rather than append (>>
). E.g.echo 'io:format("hello ~p", ["world"])' | to_erl $PIPE_DIR
我不太熟悉您当前使用的方法,但我之前给出了一些示例 从 shell 连接两个节点的三种方法。也许在路上能得到一些帮助。干杯!
I'm not really familiar with the method you're currently using but I earlier gave some example of three methods of connecting two nodes from the shell. Maybe some help on the way. Cheers!