Связь с оболочкой 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
Я не очень знаком с методом, который вы используете в настоящее время, но ранее я привел пример трех способов соединения двух узлов из оболочки. Может быть, некоторая помощь на пути. Ура!