Автоматизируйте узлы оболочки Erlang с помощью пакета unix

Я могу запустить множество узлов erlang из пакетного файла. Но могу ли я передать некоторые аргументы erl, которые заставят его выполнить некоторые команды?


person Yola    schedule 10.10.2011    source источник
comment
похоже, erl -eval решил мою проблему.   -  person Yola    schedule 10.10.2011
comment
Возможно, мой ответ на похожие вопросы мог бы помощь.   -  person D.Nibon    schedule 10.10.2011


Ответы (2)


Если вы хотите запустить узел и, например, запустить приложение erlang или выполнить несколько строк для запуска узла, вы можете запустить команду erl следующим образом.

erl -eval "application:start(my_app)"

или запуск узла несколькими командами

erl -eval "Res = my_first_module:my_start_fun(MyArg),
           my_log:log(Res),
           another_module:another_fun(Res)"

то же самое выше, но с переводом узла в фоновый процесс

erl -sname nodename 
    -setcookie nodecookie 
    -eval "Res = my_first_module:my_start_fun(MyArg),
           my_log:log(Res), 
           another_module:another_fun(Res)" 
    -detached

Но если вы хотите запускать erlang более «скриптовым» способом, я предлагаю вам изучить escript и следующий вопрос как предложено D.Nibon

person Nuno Freitas    schedule 10.10.2011

да. Ты сможешь. Если вы спросите более конкретно, я дам вам более конкретный ответ, если смогу. Это больше похоже на вопрос «erlang», чем на вопрос «bash».

person f4m8    schedule 10.10.2011
comment
запустить терминал -> запустить erl -> запустить какую-нибудь команду в оболочке erlang (имя_модуля:имя_функции()). Первые два шага я уже могу сделать, но застрял на третьем. - person Yola; 10.10.2011
comment
Есть ли способ дать команде erl строку, которая будет интерпретирована как команда erlang? - person f4m8; 10.10.2011