0

モジュールmymoduleに2つのパラメーターで始まる関数があります。コマンドラインからこの関数を実行するにはどうすればよいですか。

私はこれを試してみます:

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ファイルから実行できるようにしたい

4

1 に答える 1

3

start 関数のアリティが 1 であることを期待していると思うので、この場合は module:start(['5','10']) を呼び出そうとしています。したがって、[arg1,arg2] のように 2 つのパラメーターのリストを受け入れるように開始関数を変更します。また、-run および -s フラグに関するドキュメントも確認してください。-s は引数をアトムとして渡しますが、-run はそれらを文字列として渡します

-run Mod [Func [Arg1, Arg2, ...]](init フラグ) init に指定された関数を呼び出させます。Func はデフォルトで開始します。引数が指定されていない場合、関数はアリティ 0 であると見なされます。それ以外の場合、リスト [Arg1,Arg2,...] を引数として取り、アリティ 1 であると見なされます。すべての引数は文字列として渡されます。init(3) を参照してください。

于 2012-11-25T00:46:37.713 に答える