如何从shell执行Erlang模块的函数?

如何从shell执行Erlang模块的函数?,erlang,erlang-shell,Erlang,Erlang Shell,我有一个新手问题。我正在读《Erlang编程》一书,并在每一章之后做练习 在这种情况下,我有一个db.erl模块,在其中我为几个练习放置了几个函数。在玩了几天的练习之后,我已经厌倦了在erlshell中重复“compile->executeexercisefunction”操作。假设我正在处理db.erl模块中的new()函数;每次修改此函数后,我都必须在erl中执行下一步操作: c(db.erl). db:new(). 一次又一次。有时我忘记重新加载模块,结果令人困惑。我可以使用以下方式通过

我有一个新手问题。我正在读《Erlang编程》一书,并在每一章之后做练习

在这种情况下,我有一个
db.erl
模块,在其中我为几个练习放置了几个函数。在玩了几天的练习之后,我已经厌倦了在
erl
shell中重复“compile->executeexercisefunction”操作。假设我正在处理
db.erl
模块中的
new()
函数;每次修改此函数后,我都必须在
erl
中执行下一步操作:

c(db.erl).
db:new().
一次又一次。有时我忘记重新加载模块,结果令人困惑。我可以使用以下方式通过OS外壳编译/加载:
erl-编译file.erl;erl-make
,但我没有找到从特定模块运行特定函数的方法。有什么建议吗?

您可以使用
-eval
选项:

$ erl -eval 'io:format("printing ~p~n", [{any, term}]), init:stop()' -noshell
printing {any,term}
请阅读此处的文档:


您可以使用
erlc
来编译文件:

很有效,谢谢。而且,据我所知,这是一种非常“棘手”的做事方式。是否有一些erlang方法来测试简单的应用程序(可能使用一些工具或其他什么)?