我有一个以模块 mymodule 中的两个参数开头的函数。如何从命令行运行此功能。
我试试这个:
erl -name myname@myserver.com -s mymodule 开始 5 10
但它会引发错误:{“init terminating in do_boot”,{undef,[{mymodule,start,[['5','10']]},{init,start_it,1},{init,start_em,1} ]}}
我希望能够从 bash 文件中运行此功能
我有一个以模块 mymodule 中的两个参数开头的函数。如何从命令行运行此功能。
我试试这个:
erl -name myname@myserver.com -s mymodule 开始 5 10
但它会引发错误:{“init terminating in do_boot”,{undef,[{mymodule,start,[['5','10']]},{init,start_it,1},{init,start_em,1} ]}}
我希望能够从 bash 文件中运行此功能
我认为它希望 start 函数的数量为 1,因此在这种情况下,它试图调用 module:start(['5','10'])。因此,更改您的启动函数以接受 [arg1,arg2] 中的 2 个参数列表。此外,请查看有关 -run 和 -s 标志的文档。-s 将参数作为原子传递,而 -run 将它们作为字符串传递
-run Mod [Func [Arg1, Arg2, ...]](init flag) 使 init 调用指定的函数。Func 默认启动。如果没有提供参数,则假定该函数的参数为 0。否则,假定它的参数为 1,将列表 [Arg1,Arg2,...] 作为参数。所有参数都作为字符串传递。请参见初始化 (3)。