erl in unix pipe?

Anthony Howe <[email protected]> Fri, 21 Jan 2022 09:19:09 -0500
Newsgroups gmane.comp.lang.erlang.general
Organization SnertSoft
Message-ID <[email protected]>
I've not had occasion before now to try to use erl in a unix pipe.  I want to
find the OTP major release for a shell script.

First attempt almost works but spits out a termination message that unix tools
do not.  Plus the shell version and prompts are present; no quiet option.

elf$ echo 'erlang:system_info(compat_rel).'| erl
Eshell V11.2.2  (abort with ^G)
1> 23
2> *** Terminating erlang (nonode@nohost)


I found -noshell, so I try assorted, which print nothing and don't quit:

elf$ echo 'erlang:system_info(compat_rel).'| erl -noshell
^C
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
       (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution

elf$ echo 'erlang:system_info(compat_rel). init:stop().'| erl -noshell
^C
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
       (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution

elf$ echo 'erlang:system_info(compat_rel), init:stop().'| erl -noshell
^C
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
       (l)oaded (v)ersion (k)ill (D)b-tables (d)istribution
elf$ echo 'io:format("~p~n",[system_info(compat_rel))]).'| erl -noshell -s init stop
elf$

Google some and I find try:

elf$ erl -noshell -s erlang system_info compat_rel
{"init terminating in
do_boot",{badarg,[{erlang,system_info,[[compat_rel]],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}
init terminating in do_boot
({badarg,[{erlang,system_info,[[_]],[]},{init,start_em,1,[]},{init,do_boot,3,[]}]})

Crash dump is being written to: erl_crash.dump...done
elf$


How does one pipe Erlang statements into erl and pipe the output?

Wishes Erlang (erl) behaved more like unix tools.

-- 
Anthony C Howe
[email protected]                                   BarricadeMX & Milters
http://snert.com/    http://nanozen.snert.com/     http://snertsoft.com/