如何从shell执行Erlang模块的功能?

Ant*_*al' 2 erlang erlang-shell

我有一个新手的问​​题.我正在阅读"Erlang编程"一书,并在每一章之后进行练习.

在我有一个db.erl模块的情况下,在其中我已经为几个练习放置了几个函数.经过几天的练习后,我已经厌倦了在erlshell中重复"compile-> execute exercise-function"动作.假设我正在研究模块中的new()功能db.erl; 每次修改这个函数后,我都被迫做下一个erl:

c(db.erl).
db:new().
Run Code Online (Sandbox Code Playgroud)

一次又一次.有时我忘记重新加载我的模块,结果令人困惑.我可以使用:编译/加载OS shell erl -compile file.erl; erl -make,但是我找不到从特定模块运行特定功能的方法.有什么建议?

Dmi*_*aev 5

你可以使用-eval选项:

$ erl -eval 'io:format("printing ~p~n", [{any, term}]), init:stop()' -noshell
printing {any,term}
Run Code Online (Sandbox Code Playgroud)

阅读文档:http://www.erlang.org/doc/man/erl.html

您可以使用它erlc来编译文件:http://erlang.org/doc/man/erlc.html