与从 shell 脚本中使用 run_erl 运行的 Erlang shell 进行通信

发布于 2024-10-21 23:18:32 字数 546 浏览 0 评论 0原文

我有一个通过 run_erl 运行的 Erlang 应用程序。它创建文件 erlang.pipe.1.werlang.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画离情绘悲伤 2024-10-28 23:18:32

您是否尝试过使用管道(|)而不是附加(>>)。例如

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

别把无礼当个性 2024-10-28 23:18:32

我不太熟悉您当前使用的方法,但我之前给出了一些示例 从 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!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文