使用 unix 批处理自动化 Erlang shell 节点

Posted

技术标签:

【中文标题】使用 unix 批处理自动化 Erlang shell 节点【英文标题】:Automate Erlang shell nodes with unix batch 【发布时间】:2011-12-04 07:47:12 【问题描述】:

我可以从批处理文件中运行许多 erlang 节点。但是,我可以将一些参数传递给 erl 使其执行一些命令吗?

【问题讨论】:

看起来 erl -eval 解决了我的问题。 也许我的回复 on a similar questions 可能会有所帮助。 【参考方案1】:

如果你想启动一个节点,例如启动一个 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 和 following question,如建议的 D.Nibon

【讨论】:

【参考方案2】:

是的。你可以。 如果你问得更具体,如果我可以的话,我会给你一个更具体的答案。 这似乎是一个比“bash”问题更“erlang”的问题。

【讨论】:

启动终端 -> 启动 erl -> 在 erlang shell (module_name:function_name()) 中运行一些命令。前两步我已经可以做,但坚持到了第三步。 有没有办法给erl命令一个字符串,它会被解释为erlang命令?

以上是关于使用 unix 批处理自动化 Erlang shell 节点的主要内容,如果未能解决你的问题,请参考以下文章

erlang处理mongodb日期时间格式data类型

我无法在我的 ubuntu 18.10 cosmic 系统上安装 erlang/Elixir

使用erlang 建立一个自动化的灌溉系统准备工作

Erlang:控制Erlang进程崩溃时如何使连接的外部OS进程自动死亡?

Linux/Unix Bash 脚本如何知道自己的 PID?

2-自动化操作Excel格式文件