Erlang:在Erl文件中启动函数的命令行

Ted*_*mel 7 bash erlang command-line

我可以通过命令行或bash脚本启动Erlang文件:

exec erl file.erl
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法找到如何直接启动此文件中的函数.

例如

exec erl file.erl -f function()
Run Code Online (Sandbox Code Playgroud)

任何建议赞赏......

Jon*_*tar 14

你可能想要的是什么 erl -s module_name function_name

请注意,您永远不会像在示例中那样在erl命令中指定erlang文件.Erlang VM加载代码路径中的所有模块.这包括本地目录.

来自http://www.erlang.org/doc/man/erl.html:

-run Mod [Func [Arg1,Arg2,...]] (init标志)使init调用指定的函数.Func默认启动.如果没有提供参数,则假定该函数为arity 0.否则假定为arity 1,将列表[Arg1,Arg2,...]作为参数.所有参数都作为字符串传递.见init(3).

-s Mod [Func [Arg1,Arg2,...]] (init标志)使init调用指定的函数.Func默认启动.如果没有提供参数,则假定该函数为arity 0.否则假定为arity 1,将列表[Arg1,Arg2,...]作为参数.所有参数都以原子形式传递.见init(3).

  • 也.如果您正在制作命令行工具,请查看escript.这是一个非常好的工具,在战争的胸部.http://www.erlang.org/doc/man/escript.html (4认同)
  • 如果你需要使用除字符串或原子列表之外的参数来启动该函数,还有`-eval`.哦,你可能想添加`-noshell`以防止交互式shell打开,并且可能在末尾添加`-s init stop`以在函数完成时实际退出Erlang. (4认同)