2010-11-27 12 views

Respuesta

13

lo que es probable que desee es erl -s module_name function_name

Tenga en cuenta que nunca se especifica el archivo de Erlang en el comando ERL como lo hizo allí en su ejemplo. La VM de Erlang carga todos los módulos en la ruta de código. Eso incluye el directorio local.

De http://www.erlang.org/doc/man/erl.html:

-run Mod [Func [arg1, Arg2, ...]] (bandera init) hace init llama a la función especificado. Func está predeterminado para comenzar. Si se proporcionan sin argumentos, la función se supone que es de aridad 0. De lo contrario, se supone que es de aridad 1, tomando la lista [arg1, Arg2, ...] como argumento. Todos los argumentos se pasan como cadenas . Ver init (3).

-s Mod [Func [arg1, Arg2, ...]] (bandera init) hace init llama a la función especificado. Func está predeterminado para comenzar. Si no se proporcionan argumentos, se supone que la función es de arity 0. De lo contrario se asume que es de arity 1, tomando la lista [Arg1, Arg2, ...] como argumento . Todos los argumentos se pasan como átomos. Ver init (3).

+0

Gracias Jon! Como siempre, atraviesas :) –

+3

También. Si está creando una herramienta de línea de comando, revise escript. Es una herramienta muy buena para tener en el cofre de guerra. http://www.erlang.org/doc/man/escript.html –

+2

También hay '-eval' en caso de que necesite iniciar esa función con un argumento que no sea una lista de cadenas o átomos. Ah, y es posible que desee agregar '-noshell' para evitar que se abra el shell interactivo, y posiblemente agregar' -s init stop' al final para salir de Erlang cuando la función esté lista. – ndim

Cuestiones relacionadas