Связь с оболочкой Erlang запускается с помощью run_erl из сценариев оболочки

У меня есть приложение Erlang, которое запускается через run_erl, Создает файлы erlang.pipe.1.w а также erlang.pipe.1.r и я могу запустить консоль через to_erl, Все идет нормально. Тогда мне нужно было поговорить с ним из сценария оболочки. Очевидная вещь, чтобы сделать

#!/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 показывает, что файл уже существует. Что не так и как я могу это исправить?

2 ответа

Решение

Вы пробовали использовать трубу (|) вместо добавления>>). Например

echo 'io:format("hello ~p", ["world"])' | to_erl $PIPE_DIR

Я не очень знаком с методом, который вы используете в настоящее время, но ранее я привел пример трех способов соединения двух узлов из оболочки. Может быть, некоторая помощь на пути. Ура!

Другие вопросы по тегам