dra*_*ayl 4 elixir-mix elixir elixir-iex erlang-supervisor
所以我有一个遵循以下布局的应用程序模块:
defmodule Project.Application do
use Application
def start(_type, _args) do
children = [
randomchild1,
randomchild2,
{Project.runapp, "argument" }
]
opts = [strategy: :one_for_all, name: Project.Supervisor]
Supervisor.start_link(children, opts)
end
end
Run Code Online (Sandbox Code Playgroud)
现在,当我运行它时,我使用它mix run --no-halt并且运行完美。
我想用在命令行中传递的值替换“参数”?我不知道如何向mix run --no-halt.
我想做的就是将一个值传递给 start 方法并使用它来定义子进程。
mix 自行重置 System.argv/1。该--no-halt选项是运行应用程序的临时方式;通常我们用 来组装发行版mix release并用 来正常启动它们ebin/my_app start。
虽然您仍然想求助于mix run --no-halt,但创建空文件(mix将尝试在启动时执行它)并mix调用
mix run --no-halt -- "empty.exs" 42\nRun Code Online (Sandbox Code Playgroud)\n\n现在在你的内部Application.start/2你可以得到争论System.argv/0
def start(_type, args) do\n IO.inspect(System.argv())\n\n ...\nRun Code Online (Sandbox Code Playgroud)\n\n核实。
\n\nmix run --no-halt -- "empty.exs" 42\n#\xe2\x87\x92 ["422"] \nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2064 次 |
| 最近记录: |