Erlang читать из StdIn без приглашения - PullRequest
0 голосов
/ 12 мая 2018

Я только что прочитал модуль ввода-вывода Эрланга, все функции ввода начинаются с подсказки ().

У меня есть программа A, которая передает ее вывод в мою программу Erlang B, поэтому A stdout превращается в B stdin.

Как я могу просто прочитать этот стандартный ввод в цикле, так как я получаю сообщение каждые Xms.

я хочу что-то вроде этого

loop()->
  NewMsg = readStdIn() %% thats the function I am looking for
  do_something(NewMsg),
  loop.

1 Ответ

0 голосов
/ 12 мая 2018

Я только что прочитал модуль ввода-вывода Эрланга, все функции ввода начинаются с подсказки ().

Похоже, вы можете использовать "" для подсказки.Чтение строчно-ориентированный ввод из stdin:

-module(my).
-compile(export_all).

read_stdin() ->
    case io:get_line("") of
        eof ->
            init:stop(); 
        Line ->
            io:format("Read from stdin: ~s", [Line]),
            read_stdin()
    end.

В оболочке bash:

~/erlang_programs$ erl -compile my.erl
my.erl:2: Warning: export_all flag enabled - all functions will be exported

~/erlang_programs$ echo -e "hello\nworld" | erl -noshell -s my read_stdin
Read from stdin: hello
Read from stdin: world
~/erlang_programs$ 

См. Erlang Как мне ... написать Unixтруба программа на эрланге ?

...