如何在linux命令行的模块中运行带参数的函数

时间:2012-11-24 22:11:10

标签: erlang

我在模块mymodule中有一个带有两个参数的函数。如何从命令行运行此功能。

我试试这个:

  

erl -name myname@myserver.com -s mymodule start 5 10

但它引发了错误: {“init终止于do_boot”,{undef,[{mymodule,start,[['5','10']]},{init,start_it,1},{init,start_em,1}]}}

我希望能够从bash文件中运行此函数

1 个答案:

答案 0 :(得分:3)

我认为它期望start函数具有1的arity,所以在这种情况下它试图调用module:start(['5','10'])。因此,更改启动函数以接受2个参数的列表,如[arg1,arg2]中所示。另外,请查看-run和-s标志上的文档。 -s将参数作为原子传递,而-run将它们作为字符串传递

  

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