如何启动Erlang OTP应用程序并允许将命令行参数传递给应用程序';谁是根主管?
快速1行程序:如何启动OTP应用程序并向其传递命令行参数 我希望能够以通用的“UNIX”方式启动OTP应用程序,能够传递由getopts解析的命令行参数。因此,我有一个erlang escript,它使用库来处理命令行参数的解析 shino的回答让我走上了正确的道路:如何启动Erlang OTP应用程序并允许将命令行参数传递给应用程序';谁是根主管?,erlang,otp,erlang-escript,Erlang,Otp,Erlang Escript,快速1行程序:如何启动OTP应用程序并向其传递命令行参数 我希望能够以通用的“UNIX”方式启动OTP应用程序,能够传递由getopts解析的命令行参数。因此,我有一个erlang escript,它使用库来处理命令行参数的解析 shino的回答让我走上了正确的道路: 我让我的脚本做getopts解析 然后,escript使用application:load/1将应用程序描述加载到内存中 然后我使用application:set_env/3来存储CLI参数 现在,使用application:st
您可以使用
init:get_plain_arguments/0
函数来访问命令行(额外)参数
例如:
$ erl -sname example -extra extra args here
Erlang R15B (erts-5.9) [source] [64-bit] [smp:2:2] [async-threads:0] [kernel-poll:false]
Eshell V5.9 (abort with ^G)
(example@localhost)1> init:get_plain_arguments().
["extra","args","here"]
init:get\u plain\u arguments/0
在-extra
选项之后返回参数作为字符串列表。选项sname
仅用于解释,它不会出现在init:get\u plain\u arguments/0
中
有关更多详细信息,请参阅
init
模块上的文档。您还可以在命令行上覆盖应用程序环境设置:
erl -myapp foo bar ...
这将把application.get_env(myapp,foo)设置为“bar”,覆盖任何app.config设置